Flash ActionScript3.0事件的传递 打枪小游戏的制作

上传人:ali****an 文档编号:109919451 上传时间:2019-10-28 格式:DOC 页数:8 大小:1.80MB
返回 下载 相关 举报
Flash ActionScript3.0事件的传递 打枪小游戏的制作_第1页
第1页 / 共8页
Flash ActionScript3.0事件的传递 打枪小游戏的制作_第2页
第2页 / 共8页
Flash ActionScript3.0事件的传递 打枪小游戏的制作_第3页
第3页 / 共8页
Flash ActionScript3.0事件的传递 打枪小游戏的制作_第4页
第4页 / 共8页
Flash ActionScript3.0事件的传递 打枪小游戏的制作_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《Flash ActionScript3.0事件的传递 打枪小游戏的制作》由会员分享,可在线阅读,更多相关《Flash ActionScript3.0事件的传递 打枪小游戏的制作(8页珍藏版)》请在金锄头文库上搜索。

1、自定义事件的传递我们来看一下自定义事件。内置事件描述的是环境的变化,而自定义事件则描述的是程序状态的变化。在使用自定义事件的时候一般按以下几个步骤来进行。首先我们要声明一个事件,比如说在最简单的情况下我们提供唯一的实际参数类型就可以了。第二是定义一个对象来调度这个事件,调度事件的基类要求是EventDespage,因为只有EventDespage这个类才能使用eventdespatcher这个方法来调度事件。一般来说,程序会有一些属性来描述程序的状态,这些状态变化的时候可以进行条件判断。最终的结果可以通过事件之间的传递来达到模块之间的沟通。比如说,当你设计一个游戏的时候,来判断game ove

2、r的条件可能很多,比如说时间,角色的状态,HP等等,当这些很多的条件都有可能导致game over的时候,而这些条件的触发环境又都不是一个面向过程的编程的一个结构,它是面对对象的,在不同的对象当中完成被触发的,那它可以通过您自定义的事件来传递当前game over这种状态。那么,当定义事件调度对象之后呢,就可以注册自定义事件,把它注册到一个事件目标上面,然后再定义您的侦听器,比如trace一下game over这个字符串,播放一段结束动画,退回到主菜单等等。接下来我们看一个例子,是一个小游戏。这个小游戏我们先来运行一下。当我们运行之后呢,在舞台中会出现大大小小颜色不同的圆形,当我点击一个圆形的

3、时候,被点击的目标马上就消失了,同时会在左上方输出文本“打中了几枪”。如果我没有点击这些圆形,而是点击在空白的地方,那就会在左上方输出“失误了几抢”,当我打中10枪的时候就会输出“you win”,同时游戏已经结束。来看一下具体代码。第一个变量num是要设置目标生成的个数,我这里设置的是30;接下来是score,是记录了当前的得分,也就是我击中的个数;miss是记录我失误的个数。然后SW和SH这两个变量是分别存储了当前舞台的宽度和高度。然后我又声明了一个tf文本框,这个文本框就是为了将来显示一些文字,比如说“击中了多少枪”,“失误了多少枪”,“you win”,“you lose”等等。然后是

4、我设置文本框的一些格式,tf.x = tf.y = 25,它都是在横坐标25,纵坐标25的位置上;然后使用了文本框的autoSize这个属性,来让文本框左对齐。文本框的宽度是200个像素,同时把文本框添加到显示列表当中把它显示出来。然后我定义了两个常量,一个叫YOU_WIN,一个叫YOU_LOSE。这2个常量的值就是一个“youWin”一个“youLose”。然后我注册3个鼠标事件,第一个MouseEvent.CLICK注册鼠标点击事件,它将调度侦听函数kill;第二个是注册了自定义事件YOU_WIN,它调用win侦听函数;第三个与第二个一样是自定义事件YOU_LOSE,调用lose侦听函数。

5、我们来看一下kill函数。e.target指鼠标点击的目标,e.currentTarget指整个事件的目标,所以e.target可能是圆形或者stage,而e.currentTarget就一定是stage。如果点击的目标不等于事件目标,则把被点击的目标从显示列表中删除,同时分数递增,然后显示文本框显示“”你击中了的score;如果刚才的条件判断不成立,比如说我点击的是stage,miss的次数就增加了,同时输出miss了几次;接下来就是判断一下分数,如果得分大于等于10,就会调度一个YOU_WIN的事件,如果失分大于等于10的时候,调度YOU_LOSE事件,这是kill函数的一个设置。回到前边

6、,在我们注册了侦听之后呢,我们用了一个for循环结构。这个循环结构就是在场景上绘制不同的圆形。大家可以看到,我先声明一个名字叫target的Sprite作为容器,接下来是设置target的填充的颜色是随机的,画圆形,40个像素的圆形,同时填充,再设置圆形缩放的比例,这个缩放比例也是随机数,是在0.5到1.5之间的,再把它添加到场景当中,它的横纵坐标也是要求在当前的舞台范围内随机分布的。我们来看一下win函数和lose函数。win是显示“you win”,同时移除所有注册的事件;lose是显示“you lose”,同时移除所有注册的事件。当然,这里并不是所有的都有必要注册成事件的形式,我们这里只是作为演示。在这里是提示您在传递一些状态的时候实际上是可以使用事件的,如果在程序越复杂的情况下,事件就变得越重要。下面是全部代码,方便大家看。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 教育学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号