如上一个MC的,trace(mc.numChildren);//2
button.gotoAndStop(3);
trace(button.numChildren);//3
说明帧代码是异步执行的。
用法示例:
舞台上有一个MovieClip,实例名为foo,当然这个foo是一段效果很炫的动画了~!当到达第300帧时,我要检测一下是否到达300帧,代码如下:
foo.addFrameScript(299,gotoAndFun); function gotoAndFun():void { trace("顺利到达第300帧了吧~!"); } |
这里请务必注意:帧数的计算是从0开始~!
再查相关资料,原来addFrameScript()还可以接收任意多组的参数:
MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method); |
也就是说可以同时指定多组触发事件,在1,2,3帧上同时指定触发的动作,如果有不止一个动作事件指定在相同的一个帧上,那么,只有后者的动作会被触发~!
如果要移除动作怎么做呢?很简单,回调函数为null即可,如下示:
MovieClip.addFrameScript(0,null); this.mc.addFrameScript ( 0 , this.__onEnterFrame ); private function __onEnterFrame ( e : Event = null ) : void |
判断一个MC播放完毕:
mc.addFrameScript(mc.totalFrames - 1,play_finished);