Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Loader() и события для него (http://www.flasher.ru/forum/showthread.php?t=163753)

Tasmanec 11.08.2011 03:01

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

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

Код AS3:

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

перенесите
Код AS3:

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

в метод initListener, он же не зря так Вами обозван.

Tasmanec 11.08.2011 17:32

все испробовал, реакции никакой(((

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

illuzor 11.08.2011 17:51

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

Код AS3:

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

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

Tasmanec 11.08.2011 18:13

Спасибо! Все работает совсем забыл про addChild().


Часовой пояс GMT +4, время: 19:01.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.