ActionScript3.0 addFrameScript 传递参数

来源:互联网 发布:淘宝发顺丰多少钱 编辑:程序博客网 时间:2024/05/16 00:24

Actionscript 3.0未公开的addFrameScript()方法.此法主要是适合于使用flash 9创作环境来工作的群体.
addFrameScript的功能是允许你指定在flash player播放头播放到指定的位置时触发事件.这个方法可以接收四个参数,但目前只知道其中的前两个.
语法:
MovieClip.addFrameScript(frame:uint,notify:Function)

用法:
function output()
{

实际上addFrameScript()还可以接收任意多组的参数.如下:

MovieClip.addFrameScript(0,frame1Method, 1,frame2Method, 2,frame3Method);

也就是你说可以同时指定多组触发事件,在1,2,3帧上同时指定触发的动作,如果有不止一个动作事件指定在相同的一个帧上,那么,只有后者的动作会被触发.
如果要移除动作:
MovieClip.addFrameScript(0,null)

trace('播放头已到了第10帧');
}

//帧数的计算是从0的位置开始的,所以在使用addFrameScript的时候9代表的即是第十帧.
addFrameScript(9,output);

 

不难发现,addFrameScript没有接受函数参数说明,而addFrameScript(frame:int, fun:Function)可以看得出,没有传递参数的入口,那怎么可以传递参数呢?

poshidon 发表于 2008-5-12 09:45

试验发现:
spin.addFrameScript(spin.totalFrames-1,stopSpin);

spin.addFrameScript(spin.totalFrames-1,stopSpin());
是不一样的....

woohyuknrg 发表于 2008-5-12 10:15

addFrameScript鸡肋啊~~~~~~~~~~~只能传没有参数的函数,一旦带了参数,这个function就只执行一次,而且还是在影片剪辑第一帧就执行~太烂了~~~~~


通过return一个函数的方式,这样就可传参数。
注:因为是偏方,可能会造成其它问题,哈哈

poshidon 发表于 2008-5-12 13:40

可以传参数的。
//MovieClip.addFrameScript(帧号:uint,函数:Function,[帧号:uint,函数:Function]):void

function stopSpin(a:int):Function {
        var my_fun:Function = function (){
        trace(a);
        };
        return my_fun;
}

spin.addFrameScript(spin.totalFrames-1,stopSpin(1));

 

原创粉丝点击