AS3:动态添加的影片剪辑内的动作不起作用

时间:2015-03-04 20:57:39

标签: actionscript-3 flash actionscript addchild

我在AS3尝试做的简单测试有一个非常奇怪的问题。

我的第一帧有两个功能:

function function1 ():void {
    trace ('function1 executed');

    mc.gotoAndStop (2);

    function2 ();
}

function function2 ():void {
    trace ('function2 executed');

    var test_mc:test_lib = new test_lib ();
    addChild (test_mc);
}

正如你所看到的,function1改变了“mc”上的帧,并且还调用了function2,它在舞台上的库中添加了一个子影片剪辑。

从第60帧的另一个简单影片剪辑中调用Function1,如下所示:

Object(parent).function1 ();

添加的子影片剪辑只是一个黑色方块,在其第一帧上有跟踪动作。

跟踪操作应该在添加子项后立即生效,但事实并非如此。 但是,如果我删除或注释行mc.gotoAndStop(2),则跟踪操作正常。如果我在调用function2后放置mc.gotoAndStop(2),它也可以工作。

我不明白为什么会这样。

这发生在我正在工作的一个更大的项目上,所以我决定在新文件上隔离问题,并创建上面的示例。这很奇怪。

2 个答案:

答案 0 :(得分:1)

尝试在mc第2帧中移动你的function2。

主要时间表:

function function1 ():void {
    trace ('function1 executed');

    mc.gotoAndStop (2);
}

in mc - >在第2帧

trace ('function2 executed');
var test_mc:test_lib = new test_lib ();
addChild (test_mc);

您必须使用mc

稍微修改.root内的代码

答案 1 :(得分:0)

什么是 mc ?如果 mc 是包含两个函数的 MovieClip ,那么您的代码显然无法正常工作,因为在 gotoAndStop(2)之后,您无法更长时间调用 function2(),因为 function2()在第二帧上不存在。