zoukankan      html  css  js  c++  java
  • Laya事件派发和监听

    Laya事件派发和监听

    新建个类继承自EventDispatcher

    可调度事件的所有类的基类。Laya中所有事件都是继承自这个类。

    export class GameDispatcher extends Laya.EventDispatcher{
        private static _instance:GameDispatcher = new GameDispatcher();
            
        public static getInstance():GameDispatcher{
            return this._instance;
        }
    
        protected constructor(){
            super();
        }
    }

    再新建一个定义事件名的类

    export class EventName{
        public static readonly EVENT_NAME_STRING1 = "1";
        public static readonly EVENT_NAME_STRING2 = "2";
    }

    监听和派发事件

    private initDemo():void{
        GameDispatcher.getInstance().on(EventName.EVENT_NAME_STRING1,this,this.monitorEvent);
        GameDispatcher.getInstance().event(EventName.EVENT_NAME_STRING1);   
     }
    
    private monitorEvent():void{
         console.log("监听到事件");
    }

     可以看到控制台输出监听事件。

    事件派发时传参

    /**
    * 派发事件。
    * @param type 事件类型。
    * @param data (可选)回调数据。<b>注意:</b>如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p ,且 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
    * @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。
    */
    event(type: string, data: any = null): boolean

     private initDemo():void{
        let str1:string = "行运茶";
        let str2:string = "快乐水";
        GameDispatcher.getInstance().on(EventName.EVENT_NAME_STRING1,this,this.monitorEvent);
        GameDispatcher.getInstance().event(EventName.EVENT_NAME_STRING1,str1);   
     }
    
    private monitorEvent(str1:string):void{
         console.log("监听到事件",str1);
    }

    在搭建游戏框架里就可以自己定义个事件类EventName和一个继承EventDispatcher类的单例管理游戏里的事件监听跟派发。

  • 相关阅读:
    如何快速发现网站恶意镜像与网页劫持?
    最牛「CSRF防护」,带你进入大虾们的圈子!
    安全无小事:如何给企业用户数据上把锁?
    PHP 7 探针的安装与测试
    如何使用 Docker、ECS、Terraform 重建基础架构?
    应用安全技术趋势之 Top 5
    第77节:Java中的事务和数据库连接池和DBUtiles
    第76节:Java中的基础知识
    第76节:Java中的基础知识
    第75节:Java的中的JSP,EL和JSTL
  • 原文地址:https://www.cnblogs.com/kootimloe/p/13361903.html
Copyright © 2011-2022 走看看