1

我有一个加载外部 .swf 的 .swf:

this.createEmptyMovieClip("container_mc", this.getNextHighestDepth());
var my_listener:Object = new Object();

my_listener.onLoadComplete = function(target_mc:MovieClip) {
target_mc._x = 50;
target_mc._y = 50;
addChild(my_loader);

        var blocker = my_loader.content.test
        blocker._visible = false;
}

my_listener.onLoadProgress = function(target_mc:MovieClip) {
trace(target_mc.getBytesLoaded() + " out of " + target_mc.getBytesTotal());
}

var my_loader:MovieClipLoader = new MovieClipLoader();
my_loader.addListener(my_listener);
my_loader.loadClip("child_as2.swf", container_mc);

我想访问外部 swf 并使带有实例名称 test 的影片剪辑可见 = false; 但它不会工作。

我已经尝试了很多代码,现在它抛出了这个错误:

Scene=Escena 1, layer=Capa 1, frame=1, Line 9 There is no property with the name 'content'.

任何的想法?

如果你有更好的代码,我会非常感谢你。

4

1 回答 1

0

首先,看起来您正在混合使用 AS2 和 AS3。AS2 没有 addChild 方法,并且您正在加载的任何内容都会在加载后添加。如果您想稍后才激活您的外部影片剪辑,我建议您制作它们,以便它们的根只有 2 帧,其中第一帧是空白的,所有内容都在第二帧。然后,在 onLoadInit 中告诉它 gotoAndStop(1)。这是一些示例代码:

var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener({
    onLoadInit: function(mc:MovieClip):Void {
        mc.gotoAndStop(1);
    }
});

var container:MovieClip _root.createEmptyMovieClip('mc_container', _root.getNextHighestDepth());
loader.loadClip('clip.swf', container);
于 2012-10-28T10:46:34.820 回答