К сожалению, объекты Bitmap не распространяются от класса InteractiveObject - то есть, они не» t (и не может легко получить) возможность получать события мыши.
Как указывалось антарой и Джереми Уайтом в предыдущем ответе, самым простым контейнером, который получает события мыши, является класс Sprite. Поэтому, если вы хотите иметь Bitmap получать события мыши, и не использование мувик, вы могли бы использовать 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 в качестве контейнера.
Спасибо, у меня вопрос: И как вы получите «bmpFull.name» внутри функции «clickHandler»? 'trace (this.name)' не получает "фото" Любые идеи? Спасибо – Metafaniel
Попробуйте установить 'bmpContainer.name =" photo "'. – ivanreese