FlashAS实例学习:onEnterFrame事件和摧毁此事…
2008-04-02 11:06:54来源:互联网 阅读 ()
onEnterFrame?是个以影片剪辑帧频不断触发的动作,利用他能够不断地执行{}中的命令,但是执行完毕后,应当将此事件摧毁,以释放脚本所用的内存。
摧毁此事件的语法是delete
我们来复制50个虫子,当复制完毕后,摧毁此 onEnterFrame事件。请按照下列步骤操作:
1、放一个虫子在舞台上,实例名为bug,
2、选中第一桢,打开动作面板,输入:
var max:Number = 50;
var i:Number = 0;
onEnterFrame = function () {
duplicateMovieClip("bug", "bug" i, i);
// 复制bug,bug的新ID分别是bug0 bug1 bug2...
this["bug" i]._x = random(400);
// 新的bug的坐标分别是400内任意的数
this["bug" i]._y = random(400);
this["bug" i]._rotation = random(180);
// 新的bug的旋转是180内任意的数,便于让虫子的头朝向各个方向
i ;
// 由于bug新的ID不能相同,故需要i
if (i>=50) {
// 假如复制的数量大于等于50
delete this.onEnterFrame;
// 删除此事件
}
trace(i);
// 跟踪i,并且测试在没有delete的情况下i的情况
};
点评:
1、在使用onEnterFrame的时候,一定要考虑到delete this.onEnterFrame,假如在同一个SWF文档中有比较多的onEnterFram的时候,会明显的感觉到电脑的负荷比较重的。
2、[]符号本身是数组操作符(关于数组,后面有比较周详的教程),使用数组操作符,能够对当前对象进行引用,在这里就相当于bug0、bug、1bug2....bug50共51个影片剪辑名称的浓缩写法。
3、random()是内置类之核心对象中的数学类对象中的一个函数,例: random(4)可能得到 0,1,2,3中的任何一个.
4、要多看帮助说明,即使看不懂,也要坚持,否则提高AS写作水平就比较难。
5、利用onEnterFrame原则上是按照桢频率的速度读取的,即:假如桢频率为12桢/秒,那么每读取一次需要的时间是1/12秒,这只是原则上是这样的,但当AS脚本很多的时候,往往读取的速度要下降,因此此事件没有利用setInterval间隔时间调用函数好用。下一节,学习定义函数并且调用。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: 用Flash制作一个网站流言板
下一篇: 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