Flash - обработка событий мыши (сделать символ прозрачным для мыши) - PullRequest
0 голосов
/ 03 февраля 2010

У меня есть вспышка с фоновым символом, который реагирует на событие CLICK. Поверх этого символа у меня есть спрайт, который содержит растровое изображение с прозрачными пикселями. Оба они добавлены на сцену, поэтому они не связаны напрямую.

Я хочу, чтобы щелчки по прозрачным пикселям на спрайте проходили прямо к фону.

Я читал о mouseEnabled / mouseChildren, но не смог заставить их работать. Символ игнорирует события мыши, когда я их использую, но не передает его, как если бы он был прозрачным.

Можно ли это сделать со вспышкой? Или мне придется перенаправлять события мыши?

Спасибо

Ответы [ 2 ]

1 голос
/ 03 февраля 2010

Вы можете добавить прослушиватель для своего растрового изображения (не нужно оборачивать растровое изображение в Sprite) для прослушивания события MouseEvent.CLICK.

Затем в функции обработчика кликов просто используйте getPixel32, чтобы получить альфа кликаемого пикселя:

var alpha:String = ( yourBitmap.BitmapData.getPixel32( e.localX, e.localY ) >> 24 & 0xFF).toString(16);
if( alpha == "0" )
    // Trigger your symbol click handler here
0 голосов
/ 03 февраля 2010

Я понял, в чем проблема.

Моя сцена построена так:

stage -> container # 1 -> container # 2 -> PlayerSprites -> Background

Пометка спрайтов игрока как mouseEnabled = false / mouseChildren = false фактически отключает мышь.

Как бы то ни было, к тому времени событие мыши находится в контейнере № 2, из-за этого оно не достигнетсимвол фона в «прозрачном» виде.

...