Flash编程 事件处理函数的编程方法-编程实例

王朝数码·作者佚名  2009-02-19
窄屏简体版  字體: |||超大  

在编制Flash程序过程中,经常会碰到一段代码:

_root.onEnterFrame=function(){}

还有一些是这样:

This.onLoad=function(){}

Btn.onPress=function(){}

这些代码可以归为一类,都使用了事件处理函数方法。其中有几个关键点、对象、事件和函数。

比如,btn.onPress=function(){},其中的btn即使对象,onPress是事件,function(){}为函数部分。

Btm对象触发onPress事件时调用函数,大家可以参考我提供的“事件处理函数方法.fla”。

下面我们通过这个实例的制作来了解“事件处理函数”的用法:

1.新建一个Flash文档,背景色设置为白色,大小为550×400像素,帧频设置为30帧/秒。将它另存为“事件处理函数方法”

2.我们制作一个子弹元件,(注:制作元件您可以随意,您也可以制作一个苹果),将子弹元件放置到场景中,实例名称命名为“zidan”。制作一个内容为“继续”的按钮元件放置到场景中。在插入两个新场景,内容和刚才的场景一致。如图1所示为“场景1”。

3.在场景1的第1帧上添加如下代码,如图2所示:

_root.onLoad = function() {

zidan._rotation += 90;

};

stop();

注译:在这里_root为对象,onLoad为事件,就是说当_root被加载时触发函数,让zidan的角度自加90°。

接下来在“继续”按钮上添加如下代码,如图3所示:

当单击“继续”按钮时前进至下一个场景。4.在如图4所示的“场景2”的第1帧上加上如下代码,如图5所示:

_root.onEnterFrame = function() {

zidan._rotation++;

if (zidan._rotation == 30) {

delete onEnterFrame;

}

};

stop();

当对象_root每次进入帧时触发函数,zidan的角度每次进入帧时自加1°,到30°时停止。onEnterFrame事件同onLoad事件的不同之处在于,onLoad事件只执行一次,而onEnterFrame事件在播放头每次进入帧时就会触发,如果不关闭flash就会一直执行下去。这样势必要占用大量系统资源,为了避免这种情况,我们可以用delete配合判断语句来终止onEnterFrame事件。

在场景2的“继续”按钮上加入以下代码:

on (release) {

nextScene();

delete onEnterFrame;

}

这里加入“delete onEnterFrame;”的意义在于,如果zidan的角度还没有达到30°时,单击“继续”按钮,同样能够终止onEnterFrame事件。

5.在如图6所示的场景3的第1帧上加入以下代码,如图7所示:

zidan.onPress = function() {

zidan._rotation += 10;

};

Zidan是对象,onPress是事件,意思是当zidan被点击时触发函数执行,每点击一次,zidan的角度自加10°。onPress事件和onRelease事件等可以归为一类,这类事件涉及了人机交互的操作。而onPress和onEnterFrame事件等可以归为一类,这类事件是Flash自己触发的。了解并综合应用这两类事件,就可以制作出丰富多彩的游戏。

最后在场景3的“继续”按钮上添加如下代码:

on (release) {

gotoAndStop("场景 1", 1);

}

用这段代码最后回到场景1,完成这个实例,希望大家通过我的这些小图文,能够很快的掌握一些技巧,为您独立制作flash作品有所帮助。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航