PDA

Просмотр полной версии : Loader() и события для него


Tasmanec
11.08.2011, 03:01
Всем доброго времени суток. В Action Script новичок. Есть вопрос: Как записать код прослушивания события MOUSE_DOWN для объекта(конкретно jpg изображение), загруженного в Loader?

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

public class BitmapLoader extends Sprite {
var loader:Loader;

public function BitmapLoader() {

loader = new Loader();


loader.load(new URLRequest("http://www.adobe.com/shockwave/download/images/flashplayer_100x100.jpg"));
loader.contentLoaderInfo.addEventListener(Event.INIT, initListener);

loader.content.addEventListener(MouseEvent.MOUSE_DOWN, rotationJpg);
}


private function initListener (e:Event):void {
loader.content.x = 150;
loader.content.y = 150;
addChild(loader.content);


}


private function rotationJpg (e: MouseEvent): void{

if ( loader.content.rotationX ==0){
loader.content.rotationX = 45;
}
else {
loader.content.rotationX = 0;
}

}
}


Может кто знает в чем проблема?

MrPoma
11.08.2011, 07:57
Хм. В момент, когда вещаете мышиный листнер, content ссылается на null, так что вообще исключение должно быть. Подписывайтесь на сам лоадер.

Mur4ik
11.08.2011, 10:26
перенесите
loader.content.addEventListener(MouseEvent.MOUSE_DOWN, rotationJpg);
в метод initListener, он же не зря так Вами обозван.

Tasmanec
11.08.2011, 17:32
все испробовал, реакции никакой(((

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

illuzor
11.08.2011, 17:51
Вы добавляете на сцену loader.content, который является битмапом. А у битмапа нет мышиных событий.
Можно решить так - добавлять сам лоадер и вешайте собатие на него.

...
addChild(loader);
...
loader.addEventListener(MouseEvent.MOUSE_DOWN, rotationJpg);
...

или же добавляйте в контейнер и на этот контейнер вешайте слушатель.

Tasmanec
11.08.2011, 18:13
Спасибо! Все работает совсем забыл про addChild().