快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

Flash脚本的执行顺序

做了一下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.除非两段影片真的毫无关系,否则慎用多场景.
返回类别: Flash教程
上一教程: 用AS画图,自定义多边形及圆形
下一教程: 编程基础讲解

您可以阅读与"Flash脚本的执行顺序"相关的教程:
· Flash Actionscript脚本的执行顺序
· FLash用纯脚本的三维效果
· Flash脚本的编写方式及基本脚本的使用
· Flash8 脚本助手试用手记
· Flash绘画技巧:几个版本的对比[Flash视频教程]
    微笑服务 优质保证 索取样品