2010年05月21日 星期五 02:45
搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了↖(^ω^)↗。这些都是文章备份。勿怪。。
AS3跟AS2不同了,不能在按钮,或时间轴(如果使用文档类)上写程序,那么如何控制特定时间轴呢?
其实很简单,使用 Mc名.currentFrame==x 即可判断当前mc的帧数
例:
另外注意如果mc的帧速和主舞台不一致的话,会强制使用主舞台的帧速
假如有一个库里的MC1,修改为actionscript导出后
在as文件中写:
package { import flash.events.MouseEvent; import flash.display.MovieClip public class test extends MovieClip{ public function test() { var mc1=new MC1 addEventListener(Event.ENTER_FRAME,control);//监听bar消失动画的播放情况 addChild(mc1); } private function control(e:Event) { if(mc1.currentFrame==24){//24帧时执行 mc1.stop(); trace("mc stopped") } } }
另有种比较偏门的方法是as3的隐藏方法addFrameScript,为什么是隐藏的呢?因为它的功能很不健全。
它是直接在载入的mc里写入script,但不推荐。
因为很多方法用它添加是无效的。比如stop(),而且函数中this指代的是父对象还是自身,难以明确区分。
最多用于批量的添加trace语句,方便开发阶段。
mc1.addFrameScript(23,mcMid,44,mcEnd) //这里23为24帧,mcMid为添加的函数,按这个各式可以大批量添加 addChild(mc1); private function mcMid() { trace(“经过24帧”) } private function mcEnd() { trace(“经过45帧”) }