addFrameScript是as3 MovieClip的藏方法,可以在指定帧上增加代码.
用法:
MovieClip.addFrameScript(帧号:uint,函数:Function,[帧号:uint,函数:Function]):void
例子:
1.在mc的第一帧上增加代码
mc.addFrameScript(0,function(){trace("hi.bluewingmyth.cn")});
2.在mc第一帧和第五帧增加代码
mc.addFrameScript(0,output,4,output);
function output(){
trace("hi.bluewingmyth.cn");
}
3.取消mc第一帧和第五帧的代码
mc.addFrameScript(0,null,4,null);
以上摘自:http://www.51as.com/show.php?tid=90
-------------------------------------------------------------------------------------------------------------
在库里做了一个MC,是一个20帧的动画,想控制第一帧,和最后一帧添加代码stop();,可是又不想做帧上添加,想做class里添加,难住了。回来我用“硕思”破解了下自己的代码(在帧上加代码),嘿嘿居然发现有这么个函数addFrameScript.然后自己对比了下代码,在baidu查了下才知道这是个隐藏函数。
// NON-DOCUMENTED (MANUAL ADDITION)
//Attach a callback method to a frame. Note that this will replace any timeline code or
// previously attached callback.
// The callback method should not expect any parameter.
// @param frame <uint> Target frame number (starting from 0).
// @param notify <Function> Callback method to attach.
//
public function addFrameScript(frame:uint, notify:Function):void;
从上表格内容仔细看,原来这是一个未曾公开的方法,译成中文大意是:附加一个回调函数到指定帧上。值的注意的是这将替换任何时间轴代码或先前的附加回调函数。此回调函数无返回值。什么意思?先看第一个参数frame,明确说明这是一个目标帧数(索引值从0开始),也就是用代码指定的第几帧;notify,回调函数,即当时间轴上的播放头播放到指定帧时所执行的指定函数,这个回调函数实际上是一个事件处理函数。
用法示例:
舞台上有一个MovieClip,实例名为foo,当然这个foo是一段效果很炫的动画了~!当到达第300帧时,我要检测一下是否到达300帧,代码如下:
foo.addFrameScript(19,gotoAndFun);
function gotoAndFun():void
{
stop();
return;
}
这里请务必注意:帧数的计算是从0开始~!
再查相关资料,原来addFrameScript()还可以接收任意多组的参数:
MovieClip.addFrameScript(0,gotoAndFun, 1,gotoAndFun, 2,gotoAndFun);
也就是说可以同时指定多组触发事件,在1,2,3帧上同时指定触发的动作,如果有不止一个动作事件指定在相同的一个帧上,那么,只有后者的动作会被触发~!
MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);
如果要移除动作怎么做呢?很简单,回调函数为null即可,如下示:
MovieClip.addFrameScript(0,null);
以上摘自:http://hi.baidu.com/kafeichong/blog/item/9afeb311e6112879ca80c472.html
用法:
MovieClip.addFrameScript(帧号:uint,函数:Function,[帧号:uint,函数:Function]):void
例子:
1.在mc的第一帧上增加代码
mc.addFrameScript(0,function(){trace("hi.bluewingmyth.cn")});
2.在mc第一帧和第五帧增加代码
mc.addFrameScript(0,output,4,output);
function output(){
trace("hi.bluewingmyth.cn");
}
3.取消mc第一帧和第五帧的代码
mc.addFrameScript(0,null,4,null);
以上摘自:http://www.51as.com/show.php?tid=90
-------------------------------------------------------------------------------------------------------------
在库里做了一个MC,是一个20帧的动画,想控制第一帧,和最后一帧添加代码stop();,可是又不想做帧上添加,想做class里添加,难住了。回来我用“硕思”破解了下自己的代码(在帧上加代码),嘿嘿居然发现有这么个函数addFrameScript.然后自己对比了下代码,在baidu查了下才知道这是个隐藏函数。
// NON-DOCUMENTED (MANUAL ADDITION)
//Attach a callback method to a frame. Note that this will replace any timeline code or
// previously attached callback.
// The callback method should not expect any parameter.
// @param frame <uint> Target frame number (starting from 0).
// @param notify <Function> Callback method to attach.
//
public function addFrameScript(frame:uint, notify:Function):void;
从上表格内容仔细看,原来这是一个未曾公开的方法,译成中文大意是:附加一个回调函数到指定帧上。值的注意的是这将替换任何时间轴代码或先前的附加回调函数。此回调函数无返回值。什么意思?先看第一个参数frame,明确说明这是一个目标帧数(索引值从0开始),也就是用代码指定的第几帧;notify,回调函数,即当时间轴上的播放头播放到指定帧时所执行的指定函数,这个回调函数实际上是一个事件处理函数。
用法示例:
舞台上有一个MovieClip,实例名为foo,当然这个foo是一段效果很炫的动画了~!当到达第300帧时,我要检测一下是否到达300帧,代码如下:
foo.addFrameScript(19,gotoAndFun);
function gotoAndFun():void
{
stop();
return;
}
这里请务必注意:帧数的计算是从0开始~!
再查相关资料,原来addFrameScript()还可以接收任意多组的参数:
MovieClip.addFrameScript(0,gotoAndFun, 1,gotoAndFun, 2,gotoAndFun);
也就是说可以同时指定多组触发事件,在1,2,3帧上同时指定触发的动作,如果有不止一个动作事件指定在相同的一个帧上,那么,只有后者的动作会被触发~!
MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);
如果要移除动作怎么做呢?很简单,回调函数为null即可,如下示:
MovieClip.addFrameScript(0,null);
以上摘自:http://hi.baidu.com/kafeichong/blog/item/9afeb311e6112879ca80c472.html