flash中loadMovie问题

2024-12-28 17:13:54
推荐回答(3个)
回答1:

终于遇到一样问题的人了! 内牛满面啊..
前段时间我也是头疼这个问题,其实表面上的原因很简单,就是在影片加载过程中,MC的高和宽是0,改变这个值貌似是无效的,而且还会使得图片的加载也失败.
这点的确令人费解,我当时的解决办法是,创建了一个MCL对象来帮助加载图片,然后利用MCL的加载完成的初始化事件,来在加载完毕之后再调整大小:
this.createEmptyMovieClip("mc",1);
var MCL = new MovieClipLoader();
MCL.loadClip("001.jpg",mc);
MCL.onLoadInit = function() {
mc._width = 100;
};
这段代码可以生效,但是毕竟不一定是正确的使用方法,然而我又没有查明真正的原因,只能这么顶当交工了..

回答2:

this.createEmptyMovieClip("mc", 1);
mc.loadMovie("2.jpg", _root);
onEnterFrame = function () {
if (mc._width) {
mc._width = 100;
mc._height = 150;
delete onEnterFrame;
}
};

=============
你可以这样测试一下:
this.createEmptyMovieClip("mc", 1);
mc._width = 100;
mc._height = 150;
mc.loadMovie("2.jpg", _root);
trace(mc._width+"=========="+mc._height)

你会看到测试结果是0==========0
然后再测试下面的代码:
this.createEmptyMovieClip("mc", 1);
mc._width = 100;
mc._height = 150;
trace(mc._width+"=========="+mc._height);
你看到结果也是0==========0
可以思考一下了,这说明什么?
对一个空mc无法改变宽高,改变的结果反而是限制了其宽为0,高为0。
而mc加载外部图片需要一个过程,无论改变mc宽和高的动作在前还是在后,都会先被触发,导致mc的大小为0,无法加载图片,我认为是这样吧。所以解决办法就是要确认图片先加载进来,再改变大小。
缩放属性和位置属性都没有这个问题。你可以对空mc改变缩放和位置属性看下。

回答3:

主次问题。
你这样处理不太合理,
1.swf
里面
loadMovie
2.swf
你需要一个主次问题,
如果你想进入2.swf,然后删除1.swf的话
你的主次问题就错了。
你必须还要一个主的SWF来吃1.swf和2.swf,
主---次.swf
|--次.swf
|--次.swf
这样比较方便操作。
还有一种是在同一帧导入的级别问题,也就是谁比谁更看了到。
loadMovieNum();
这个方式也不错,你可以多按F1,查看就有用法。
谢谢。