我有一个带有响应 CLICK 事件的背景符号的闪光灯。在该符号之上,我有一个包含透明像素位图的精灵。它们都被添加到阶段,因此它们没有直接关系。
我希望点击精灵上的透明像素直接进入背景。
我已阅读有关 mouseEnabled / mouseChildren 但无法使这些工作的信息。当我使用它们时,该符号会忽略鼠标事件,但不会像透明一样传递它。
这可能与闪光灯有关吗?还是我必须重新路由鼠标事件?
谢谢
我有一个带有响应 CLICK 事件的背景符号的闪光灯。在该符号之上,我有一个包含透明像素位图的精灵。它们都被添加到阶段,因此它们没有直接关系。
我希望点击精灵上的透明像素直接进入背景。
我已阅读有关 mouseEnabled / mouseChildren 但无法使这些工作的信息。当我使用它们时,该符号会忽略鼠标事件,但不会像透明一样传递它。
这可能与闪光灯有关吗?还是我必须重新路由鼠标事件?
谢谢
您可以在您的位图上添加一个侦听器(无需将您的位图包装在 Sprite 中)以侦听 MouseEvent.CLICK 事件。
然后,在您的点击处理函数中,只需使用 getPixel32 来获取点击像素的 alpha :
var alpha:String = ( yourBitmap.BitmapData.getPixel32( e.localX, e.localY ) >> 24 & 0xFF).toString(16);
if( alpha == "0" )
// Trigger your symbol click handler here
我意识到问题出在哪里。
我的场景是这样构建的:
舞台 -> 容器 #1 -> 容器 #2 -> PlayerSprites -> 背景
将玩家精灵标记为 mouseEnabled = false / mouseChildren = false 实际上会禁用鼠标。
但是到那时,鼠标事件在容器#2中,因此它不会以“透明”的方式到达背景符号。