• 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);

  • 相关阅读:
    Android Service启动原理分析
    线程池原理分析
    仿EventBus做一个简单的基于订阅发布的事件总线
    EventBus原理以及源代码分析
    Android从点击Launcher图标开始到App打开流程分析
    使用LruCache和DiskLruCache手写一个ImageLoader
    OkHttp2连接池复用原理分析
    OkHttp执行流程源码分析
    Android使用动态代理模仿Retrofit的create方法,使其可以返回任意的接口类型
    Android模仿Retrofit的建造者模式
  • 原文地址:https://www.cnblogs.com/as3lib/p/2561356.html
Copyright © 2020-2023  润新知