




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自定义事件的传递我们来看一下自定义事件。内置事件描述的是环境的变化,而自定义事件则描述的是程序状态的变化。在使用自定义事件的时候一般按以下几个步骤来进行。首先我们要声明一个事件,比如说在最简单的情况下我们提供唯一的实际参数类型就可以了。第二是定义一个对象来调度这个事件,调度事件的基类要求是EventDespage,因为只有EventDespage这个类才能使用eventdespatcher这个方法来调度事件。一般来说,程序会有一些属性来描述程序的状态,这些状态变化的时候可以进行条件判断。最终的结果可以通过事件之间的传递来达到模块之间的沟通。比如说,当你设计一个游戏的时候,来判断game over的条件可能很多,比如说时间,角色的状态,HP等等,当这些很多的条件都有可能导致game over的时候,而这些条件的触发环境又都不是一个面向过程的编程的一个结构,它是面对对象的,在不同的对象当中完成被触发的,那它可以通过您自定义的事件来传递当前game over这种状态。那么,当定义事件调度对象之后呢,就可以注册自定义事件,把它注册到一个事件目标上面,然后再定义您的侦听器,比如trace一下game over这个字符串,播放一段结束动画,退回到主菜单等等。接下来我们看一个例子,是一个小游戏。这个小游戏我们先来运行一下。当我们运行之后呢,在舞台中会出现大大小小颜色不同的圆形,当我点击一个圆形的时候,被点击的目标马上就消失了,同时会在左上方输出文本“打中了几枪”。如果我没有点击这些圆形,而是点击在空白的地方,那就会在左上方输出“失误了几抢”,当我打中10枪的时候就会输出“you win”,同时游戏已经结束。来看一下具体代码。第一个变量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”,同时移除所有注册的事件。当然,这里并不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年青岛科技大学辅导员考试真题
- 提升在职外语能力的计划
- 福建省福州十九中学2025年数学七下期末联考试题含解析
- 逆全球化趋势中的政治经济学研究试题及答案
- 2024年甘肃临夏博智电力安装有限公司招聘真题
- 2025届山东省潍坊市昌邑市数学七下期末调研模拟试题含解析
- 操作系统与网络集成试题与答案
- 计算机科学在其他领域的应用的试题及答案
- 未来市场动态与战略应对试题及答案
- 2025届重庆市江津区数学七下期末质量跟踪监视试题含解析
- 四川省乐山市2023-2024学年八年级下学期期末数学试题(解析版)
- 淄博市临淄区2022-2023学年七年级下学期期中数学试题
- 焰火燃放安全技术规程
- 农村自建房包工劳动合同
- 心功能不全试题库及答案
- DL-T5159-2012电力工程物探技术规程
- 小升初数学模拟试卷北师大版选拔卷
- MOOC 信号与系统-西安邮电大学 中国大学慕课答案
- 2021年高考理科数学全国新课标卷1(附答案)
- 《电动汽车充电站设施与服务分级评价规范》
- MOOC 生物化学-代谢与营养-南京医科大学 中国大学慕课答案
评论
0/150
提交评论