文章目录

在写自己的东西时,涉及到需要stop或者removeChild或者要dispatchEvent的动画,原来都是直接在Flash IDE里的帧上直接写代码。后来Fenix告诉我这样不便于代码管理,fla里边尽量不要写代码,可以使用EnterFrame来侦听是不是到了指定帧。虽然并没有发现对效率有什么影响,但是其实个人一直担心EnterFrame会带来不少负担。

最近公司的项目有不少小东西要处理,于是也稍微介入了一些程序的工作,发现其中用到了不少addFrameScript。看起来似乎很好用,于是到网上搜索了一下,大概整理出了以下资料。

1.基本用法

1
mc.addFrameScript(frameIndex,function);

2.需要一次过在多个帧上面添加不同的帧标记的时候,可以这样使用:

1
2
mc.addFrameScript(1,fun1,5,fun2,10,fun3);

3.frameIndex是从0开始的,而不是像gotoAndStop()函数是从1开始的,这里需要将实际的帧减1才是正确的。如果对同一帧重复添加帧代码,新的帧代码会自动替换旧的。addFrameScript(frameIndex, null)的方法可以清除frameIndex帧的代码。特别需要注意的是,一旦这个MC开始了播放,再次调用addFrameScript就会无效的了,所以需要在构造函数中就定义好。
目前已经把自己的用到代码中可以替换的都换掉了,但是网上也有人说不推荐使用这个方法,因为addFrameScript是flash的隐藏方法,与EnterFrame在底层实现机制是一样的。比较耸人听闻的还有,它有可能造成内存泄漏。先用着看吧。

♦ 本文固定连接:http://gsgundam.com/2012-12-15-use-addframescript/

♦ 转载请注明:GSGundam 2012年12月15日发布于 GSGUNDAM砍柴工

友荐云推荐