LayaAir引擎鼠标事件API有什么特点
1个回答
展开全部
LayaAir的Api设计以简化,易用,高性能为准则,鼠标事件Api也不例外。LayaAir的鼠标事件有以下特点:
默认精灵对象的是不接受鼠标事件的(mouseEnabled=false)。
给精灵设置任意鼠标事件监听,会自动打开自己和所有父对象的鼠标事件(mouseEnabled=true)。
某个对象想被点击中,需要符合两个条件:mouseEnabled=true,有宽高或者hitArea属性,默认精灵是不设置宽高的,但Laya自带的UI系统会自动计算宽高,所以一般无需设置宽高。
鼠标事件会冒泡,也就是子对象被命中,父对象也会收到相应的事件,无论父对象宽高是多少(可以通过event.stopPropagation()阻止事件冒泡)。
鼠标事件检测流程:先检测子对象是否命中,然后才检测父对象是否命中。
如果想忽略空白穿透点击,可以设置对象的mouseThrough=true,这样只会点击有东西的地方,空白的地方会穿透下去。
事件基于对象池实现,最大程度复用对象,全局也只有一个Event实例,所以使用时不要引用event对象本身,可以引用event内部属性,比如:
var evt = event;(不建议这样写)
var target = event.target(建议这样写)
默认精灵对象的是不接受鼠标事件的(mouseEnabled=false)。
给精灵设置任意鼠标事件监听,会自动打开自己和所有父对象的鼠标事件(mouseEnabled=true)。
某个对象想被点击中,需要符合两个条件:mouseEnabled=true,有宽高或者hitArea属性,默认精灵是不设置宽高的,但Laya自带的UI系统会自动计算宽高,所以一般无需设置宽高。
鼠标事件会冒泡,也就是子对象被命中,父对象也会收到相应的事件,无论父对象宽高是多少(可以通过event.stopPropagation()阻止事件冒泡)。
鼠标事件检测流程:先检测子对象是否命中,然后才检测父对象是否命中。
如果想忽略空白穿透点击,可以设置对象的mouseThrough=true,这样只会点击有东西的地方,空白的地方会穿透下去。
事件基于对象池实现,最大程度复用对象,全局也只有一个Event实例,所以使用时不要引用event对象本身,可以引用event内部属性,比如:
var evt = event;(不建议这样写)
var target = event.target(建议这样写)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询