flash – mouseChildren = false对我来说效果不好
发布时间:2020-12-15 07:24:07 所属栏目:百科 来源:网络整理
导读:新年快乐顺便说一句! 我想将事件处理与容器及其子容器分开.如您所见,我的源代码非常简单: package { import flash.display.Sprite; import flash.display.*; import flash.events.*; public class test extends Sprite{ public function test() { var cont
新年快乐顺便说一句!
我想将事件处理与容器及其子容器分开.如您所见,我的源代码非常简单: package { import flash.display.Sprite; import flash.display.*; import flash.events.*; public class test extends Sprite{ public function test() { var container:Sprite = new Sprite(); // my container container.graphics.beginFill(0,1); // whatever the color container.graphics.drawRect(0,100,100); // origin at 0,0 container.graphics.endFill(); addChild(container); var decor:Sprite = new Sprite(); // and it child decor.graphics.beginFill(0,1); // whatever the color decor.graphics.drawRect(200,200,100); // origin at 200,200 decor.graphics.endFill(); container.addChild(decor); container.mouseChildren = false; container.addEventListener(MouseEvent.ROLL_OVER,onOver,false,true); } private function onOver(e: MouseEvent):void { trace("ROLL trace"); } } } 当我滚动容器对象时,我已经得到了跟踪(对我而言). 解决方法
装饰对象是容器的成员,因此它与容器内的任何其他内容一起进行评估.
mouseChildren = false;不是完全禁用鼠标事件的方法,而是为了降低复合显示对象内的复杂性:鼠标事件仍然被触发,但事件的目标属性不包含对鼠标实际翻转的子对象的引用,而只包含已设置该属性的父级. 如果要完全忽略decorto,请使用decor.mouseEnabled = false;而是. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |