Растровое изображение как кнопка? - PullRequest
3 голосов
/ 10 апреля 2010

Как установить растровое изображение в качестве кнопки, чтобы я мог применить к нему режим кнопок и события мыши, не добавляя растровое изображение в видеоклип?

var bmpFull=new Bitmap(event.currentTarget.content.bitmapData);
        bmpFull.smoothing=true;
        bmpFull.name="photo";
        bmpFull.alpha=0;

        //fullMC.buttonMode=true;
        fullMC.addChild(bmpFull);

Ответы [ 2 ]

7 голосов
/ 12 апреля 2010

К сожалению, объекты Bitmap не выходят из класса InteractiveObject, то есть не имеют (и не могут легко получить) возможности получать события мыши.

Как указали antpaw и Jeremy White в предыдущем ответе, самый простой класс-контейнер, который получает события мыши, это класс Sprite. Поэтому, если вы хотите, чтобы битовая карта принимала события мыши, а не использовал MovieClip, вы могли бы использовать Sprite:

var bmpFull:Bitmap = new Bitmap(event.currentTarget.content.bitmapData);
bmpFull.smoothing = true;
bmpFull.name = "photo";
bmpFull.alpha = 0;

var bmpContainer:Sprite = new Sprite(); // can receive mouse events, for example:
bmpContainer.addEventListener(MouseEvent.CLICK, clickHandler);
bmpContainer.buttonMode = true; // this just makes it show the hand cursor, and is not necessary for the mouse events to work
bmpContainer.addChild(bmpFull);

На самом деле, я бы порекомендовал использовать Sprite, поскольку они являются более простыми объектами, чем MovieClips, и, следовательно, не требуют такого большого количества памяти.

Теперь, если вы хотите, чтобы Bitmap отправляла события мыши без использования какого-либо контейнерного клипа, вам, вероятно, нужно написать собственное расширение класса Bitmap, в котором есть собственный менеджер событий. Это было бы намного, намного сложнее. Я настоятельно рекомендую использовать Sprite в качестве контейнера.

3 голосов
/ 10 апреля 2010

buttonMode является собственностью Sprite

наследование фрагмента фильма выглядит следующим образом

MovieClip >> Sprite >> DisplayObjectContainer >> InteractiveObject >> DisplayObject >> EventDispatcher >> Object

                                                            Bitmap >> DisplayObject >> EventDispatcher >> Object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...