ActionScript3.0 addFrameScript 传递参数

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));

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值