我有一个闪光灯,背景符号响应CLICK事件。 在该符号的顶部,我有一个包含带透明像素的位图的精灵。 它们都被添加到舞台上,所以它们没有直接相关。
我希望点击精灵上的透明像素直接进入背景。
我已经阅读过有关mouseEnabled / mouseChildren的内容但未能完成这些工作。 当我使用它时,该符号忽略鼠标事件,但不会将其传递,就好像它是透明的一样。
这可以用闪光灯吗?或者我是否必须重新路由鼠标事件?
由于
答案 0 :(得分:1)
您可以在Bitmap上添加一个侦听器(无需将您的Bitmap包装在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 :(得分:0)
我意识到问题所在。
我的场景是这样构建的:
阶段 - >容器#1 - >容器#2 - > PlayerSprites - >背景
将播放器精灵标记为mouseEnabled = false / mouseChildren = false确实会禁用鼠标。
当时,鼠标事件在容器#2中,因此它不会以“透明”的方式到达背景符号。