Flash脚本的执行顺序
2008-04-02 11:02:38来源:互联网 阅读 ()
做了一下Flash脚本执行顺序状况的测试,总结出以下几条规则:
1.先执行帧脚本,再执行该帧中的影片剪辑中帧脚本.
2.同一帧中不同图层的帧脚本的执行顺序是从上层图层至下层图层;
3.不同影片剪辑中的帧脚本执行顺序是根据其加载顺序来的.通常下在同一帧中不同图层内的影片剪辑脚本以自下层图层至上层图层;
4.由于非脚本创建的影片剪辑最先加载,所以先执行非脚本创建的影片剪辑中的脚本,再执行由脚本创建的影片剪辑中的脚本,脚本创建的影片剪辑遵循"先创建/加载,先执行"的原则;
5.非脚本创建的影片剪辑的加载顺序是由深度低至深度高.
6.gotoAndPlay语句假如是跳转到同一影片剪辑中的某一帧,则该语句后面的语句还会执行,假如是跳转到其他影片剪辑(比如:_parent.gotoAndPlay(n)),则其后的语句不会执行.
上面的规则有点儿像绕口令,我们来看一个例子,这个例子我就不给源文档了:
1.新建一Flash文档,插入一个新图层,这样一共有两个层.
2.在两个图层中各插入一句:trace("这是图层一/二");
3.测试.
能够看到上面的图层先输出.交换图层位置能够验证.
我们继续:
1.新建一个MC,在MC里第一帧写上:trace("这是影片剪辑" this._name);
2.在两个图层中各拖入一个MC.
3.执行.
继续:
1.把两个MC放到同一图层中.
2.改变MC的排列顺序,分别测试.
继续:
1.插入第二帧.
2.在第二帧中写:gotoAndStop(1);trace("这是第二帧");
3.测试.
继续:
1.修改MC,在MC中加入第二帧.
2.在第二帧中写:_parent.gotoAndStop(1);trace("这是影片剪辑中的第二帧");
3.将主场景中原先的两个MC删除.
4.在主场景第二帧的代码删除,新加上:stop();
5.将MC向第二帧中拖入一个.
6.执行.
由此能够验证上面的规则.
提醒一点:
由于执行顺序是由上图层至下图层,所以假如脚本中有#include,应放到上图层中.这样其中的函数或变量才能被下图层的脚本引用.
最后建议:
为了不被Flash的执行顺序搞晕,请按照OO的思想编写作品,gotoAndPlay使用适当,变量的引用也最好有封装性,不要在不同的影片剪辑中引用同一个变量,全局变量尽量不用.Flash并没有规则一定要怎样书写脚本才算合格,但是为了工作的方便,请注意规范写法.否则考虑脚本的执行顺序就够受的了.下面几个原则不妨遵守一下:
1.勤写注释.
2.脚本写在一帧中,不同段的脚本用注释分开.
3.脚本写在帧中,事件处理器不要加到按钮/影片剪辑上.
4.不使用全局变量.
5.不直接在函数中引用某一影片剪辑,而改用参数引用.
6.不要频繁使用gotoAndPlay.
7.常用的函数写到主场景的帧上,或写到外部文档中再include.
8.影片剪辑里帧中假如有函数,不如为该影片剪辑自定义一个类再用AS2.0类链接.把该函数作为类的一个方法.影片剪辑中的变量亦是如此.
9.除非两段影片真的毫无关系,否则慎用多场景.
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 一个AS画线的代码
下一篇: Flash动画的“遮丑”研究
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash