我在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)
,它也可以工作。
我不明白为什么会这样。
这发生在我正在工作的一个更大的项目上,所以我决定在新文件上隔离问题,并创建上面的示例。这很奇怪。
答案 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()在第二帧上不存在。