(本文适用于Actionscript 3和FLASH 9 PUBLIC ALPHA)
(如若转载,请留下作者frogcjn的Blog链接:frogcjn.blogba.cn)
没想到Sprite与MovieClip差别如此之大,以前只是以为Sprite只有一帧,MovieClip有无数帧.
有一次在fla文件的"Document class"填"A.as"
A.as中的内容:
package{ |
然后在舞台的时间轴(第一帧)上写:
trace(文本); |
按"ctrl+enter"测试,竟然显示如下的错误提示:
ReferenceError: Error #1065: 变量 addFrameScript 未定义。 at A$iinit() |
我顶你个肺,哪里来的 addFrameScript 这个变量?FLASH 9 PUBLIC ALPHA总是输出莫名其妙的并且毫无用处的错误提示,真是顶你个肺!
于是我苦苦找BUG找了10分钟……最终怀疑到了"时间轴"和Sprite这两个可恶的家伙……将声明为继续Sprite改写为以前经常写的继续MovieClip ……真实太可恶了.
不过……我又知道了MovieClip的秘密:"addFrameScript"变量.将A.as写成继续MovieClip后,trace(addFrameScript);看看addFrameScript到底是什么:
trace的结果:
function Function() {} |
package{ |
在fla文件的"Document class"填"B.as",在舞台的时间轴(第一帧)上写:
trace("时间轴脚本运行"); |
然后"ctrl+enter"测试,结果的顺序是"构造函数运行""时间轴脚本运行",这是正常情况.
将B.as中在"//在这里设置i的数值"一行设置i的值为1,保存B.as,测试,输出结果:
构造函数运行 ArgumentError: Error #2001: 指定的参数太少;当前为 2,应该为 1。 at flash.display::MovieClip/addFrameScript() at B$iinit() 时间轴脚本运行 |
设置i的值为2,保存B.as,测试,输出结果:
构造函数运行 时间轴脚本运行 |
设置i的值为3,保存B.as,测试,输出结果:
构造函数运行 ArgumentError: Error #2001: 指定的参数太少;当前为 4,应该为 3。 at flash.display::MovieClip/addFrameScript() at B$iinit() 时间轴脚本运行 |
看来addFrameScript有两个参数.(并且还可以看出Error 报告的愚笨,竟然把参数数量都给弄错了)
那么addFrameScript两个参数应该填什么呢?查google,只有一个俄文网站http://orangeflash.eu/?p=65对这方法的两个参数有介绍:
addFrameScript(frame:uint,func:Function); |
注重frame指的是"时间轴帧数-1",也就是在第"frame+1"帧运行func.
进一步进行实验(实验过程我就不贴了)发现:
当addFrameScript在"Document class"使用时,测试,播放到第"frame+1"帧上时,把这一帧上原有的所有脚本都扔掉,不运行,而此时只运行func.之后继续正常地播放下一帧.
当addFrameScript在舞台时间轴上时,addFrameScript所在帧播放后,addFrameScript再生效.
例如在舞台时间轴的第5帧:
var A = function(){trace("A)}; |
1 |
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |