当前位置: 首页 > news >正文

--自定义事件


  
  1. --自定义事件
  2. --加载EventProctocol组件
  3. --在MainScene:ctor()中 加入如下代码,就可以让MainScene拥有EventProtocol的方法
  4. cc(self):addComponent("component.behavior.EventProtocol"):exportMethods()
  5. --exportMethods()
  6. function EventProtocol:exportMethods()
  7. self:exportmethods_({
  8. "addEventListener",
  9. "dispatchEvent",
  10. "removeEventListenr",
  11. "removeEventListenersByTag",
  12. "removeEventListenersByEvent",
  13. "removeAllEventListenersForEvent",
  14. "removeAllEventListeners",
  15. "hasEventListener",
  16. "dumpAllEventListeners",
  17. })
  18. return self.target_
  19. end
--示例

   
  1. local OneSprite = class("OneSprite",function()
  2. return display.newSprite("heart.png") end)
  3. function OneSprite:ctor()
  4. --加载组件以扩展自定义事件
  5. cc(self):addComponent("components.behavior.EventProtocol"):exportMethods()
  6. self:performWithDelay(function() self:hide()end,3.0)
  7. end
  8. -- 抽象hide 方法调用这个方法隐藏精灵并发送一个精灵隐藏的事件监听给监听器
  9. function OneSprite:hide()
  10. self:setVisible(false)
  11. --发送事件 参数为table name字段不能为空
  12. self:dispatchEvent({name= "HideSprite"})
  13. end
  14. function OneSprite:onEnter()
  15. end
  16. function OneSprite:onExit()
  17. self:removeAllEventListeners()
  18. end
  19. return OneSprite

    
  1. local OneSprite = import("app.scenes.OneSprite")
  2. local MainScene = class("MainScene",function() return display.newScene("MainScene") end)
  3. function MainScene:ctor()
  4. local sprite = OneSprite.new()
  5. sprite:pos(display.size.width/2,display.size.height/2)
  6. sprite:addTo(self):addEventListener("HideSprite",handler(self,self.onEvent))
  7. end
  8. function MainScene:onEvent()
  9. print("sprite hide!")
  10. end
  11. function MainScene:onEnter()
  12. end
  13. function MainScene:onExit()
  14. end
  15. return MainScene



来自为知笔记(Wiz)


转载于:https://www.cnblogs.com/feizuzu/p/6248549.html

相关文章:

  • C++ VS C#(10):构造函数与析构函数
  • oracle 10g OEM常规错误解决
  • Hibernate实体关系映射(OneToMany单边)——完整实例
  • JavaScript学习笔记(三)——this、原型、javascript面向对象
  • 在Common Lisp中使用 List Comprehension
  • 基础数据结构
  • C++ VS C#(11):结构体和对象的细微区别
  • 数据库被黑后留下的数据
  • 通过html字符串连接组合并调用javascript函数
  • ARM+LINUX移植攻略(十)支持东华 3.5寸LCD输出console信息和BMP图片、logo
  • 字符串截取函数slice, substring, substr
  • ARM+LINUX移植攻略(十二)U-boot-2009.08利用tftp服务下载内核和利用nfs服务挂载nfs文件系统...
  • 快速排序(转)
  • Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》...
  • DelphiXE8FMX工程实现无边框托动(发送消息)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【个人向】《HTTP图解》阅后小结
  • Apache Spark Streaming 使用实例
  • extjs4学习之配置
  • Flex布局到底解决了什么问题
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • mysql常用命令汇总
  • rc-form之最单纯情况
  • vue 配置sass、scss全局变量
  • 大数据与云计算学习:数据分析(二)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 动态规划入门(以爬楼梯为例)
  • 反思总结然后整装待发
  • 诡异!React stopPropagation失灵
  • 经典排序算法及其 Java 实现
  • 聚簇索引和非聚簇索引
  • 让你的分享飞起来——极光推出社会化分享组件
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 线上 python http server profile 实践
  • 协程
  • 一个JAVA程序员成长之路分享
  •  一套莫尔斯电报听写、翻译系统
  • 最简单的无缝轮播
  • 400多位云计算专家和开发者,加入了同一个组织 ...
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • 昨天1024程序员节,我故意写了个死循环~
  • ​比特币大跌的 2 个原因
  • ​业务双活的数据切换思路设计(下)
  • #Z2294. 打印树的直径
  • (超简单)构建高可用网络应用:使用Nginx进行负载均衡与健康检查
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计高校学生选课系统
  • (论文阅读11/100)Fast R-CNN
  • (一)80c52学习之旅-起始篇
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net Signalr 使用笔记
  • .NET4.0并行计算技术基础(1)
  • .netcore 获取appsettings