addFrameScript 修改自定义button 名字

如上一个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 );
  this.mc.addFrameScript ( 1 , this.__onEnterFrame );
  this.mc.addFrameScript ( 2 , this.__onEnterFrame );
  this.mc.addFrameScript ( 3 , this.__onEnterFrame );

 private function __onEnterFrame ( e : Event = null ) : void
 {
  if (this.mc.currentFrame != 1)
  {
   if (this.building.getLevel () == 0)
   {
    this.mc.txt.txt.text = this.building.getName ();
    // this.mc.txt.txt.text = this.building.getName () + "(" + this.building.getLevel () + ")";
   }
   else
   {
    this.mc.txt.txt.text = this.building.getName () + "(" + this.building.getLevel () + ")";
   }
  }
 }

判断一个MC播放完毕:

mc.addFrameScript(mc.totalFrames - 1,play_finished);

原文地址:https://www.cnblogs.com/as3lib/p/2561356.html