- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Flash-ActionScript3.0事件的传递-打枪小游戏的制作
自定义事件的传递
我们来看一下自定义事件。内置事件描述的是环境的变化,而自定义事件则描述的是程序状态的变化。在使用自定义事件的时候一般按以下几个步骤来进行。首先我们要声明一个事件,比如说在最简单的情况下我们提供唯一的实际参数类型就可以了。第二是定义一个对象来调度这个事件,调度事件的基类要求是EventDespage,因为只有EventDespage这个类才能使用eventdespatcher这个方法来调度事件。一般来说,程序会有一些属性来描述程序的状态,这些状态变化的时候可以进行条件判断。最终的结果可以通过事件之间的传递来达到模块之间的沟通。比如说,当你设计一个游戏的时候,来判断game over的条件可能很多,比如说时间,角色的状态,HP等等,当这些很多的条件都有可能导致game over的时候,而这些条件的触发环境又都不是一个面向过程的编程的一个结构,它是面对对象的,在不同的对象当中完成被触发的,那它可以通过您自定义的事件来传递当前game over这种状态。那么,当定义事件调度对象之后呢,就可以注册自定义事件,把它注册到一个事
来看一下具体代码。第一个变量num是要设置目标生成的个数,我这里设置的是30;接下来是score,是记录了当前的得分,也就是我击中的个数;miss是记录我失误的个数。然后SW和SH这两个变量是分别存储了当前舞台的宽度和高度。然后我又声明了一个tf文本框,这个文本框就是为了将来显示一些文字,比如说“击中了多少枪”,“失误了多少枪”,“you win”,“you lose”等等。
然后是我设置文本框的一些格式,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侦听函数。
我们来看一下kill函数。e.target指鼠标点击的目标,e.currentTarget指整个事件的目标,所以e.target可能是圆形或者stage,而e.currentTarget就一定是stage。如果点击的目标不等于事件目标,则把被点击的目标从显示列表中删除,同时分数递增,然后显示文本框显示“”你击中了的score;如果刚才的条件判断不成立,比如说我点击的是stage,miss的次数就增加了,同时输出miss了几次;接下来就是判断一下分数,如果得分大于等于10,就会调度一个YOU_WIN的事件,如果失分大于等于10的时候,调度YOU_LOSE事件,这是kill函数的一个设置。
回到前边,在我们注册了侦听之后呢,我们用了一个for循环结构。这个循环结构就是在场景上绘制不同的圆形。大家可以看到,我先声明一个名字叫target的Sprite作为容器,接下来是设置target的填充的颜色是随机的,画圆形,40个像素的圆形,同时填充,再设置圆形缩放的比例,这个缩放比例也是随机数,是在0.5到1.5之间的,再把它添加到场景当中,它的横纵坐标也是要求在当前的舞台范围内随机分布的。
我们来看一下win函数和lose函数。win是显示“you win”,同时移除所有注册的事件;lose是显示“you lose”,同时移除所有注册的事件。
当然,这里并不是所有的都有必要注册成事件的形式,我们这里只是作为演示。在这里是提示您在传递一些状态的时候实际上是可以使用事件的,如果在程序越复杂的情况下,事件就变得越重要。
下面是全部代码,方便大家看。
文档评论(0)