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帧”)
}