ActionScript BitmapData встроен в растровые изображения? - PullRequest
0 голосов
/ 26 мая 2010

Я использовал Loader и URLRequest, чтобы загрузить .png из Интернета и добавить его в свой список отображения. поскольку это уже растровое изображение, оно уже имеет встроенные растровые данные? или мне нужно самому создавать растровые данные?

также, почему тот же оператор трассировки возвращает false в mouseMoveHandler, когда выводит true в функции displayImage?

    var imageLoader:Loader = new Loader();
    imageLoader.load(new URLRequest("http://somewebsite.com/image.png"));
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, displayImage);

    function displayImage(evt:Event):void
     {
     addChild(evt.target.content);
     addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

     trace(evt.target.content is Bitmap);  //outputs 'true'
     }

   function mouseMoveHandler(evt:MouseEvent):void
     {
     trace(evt.target.content is Bitmap);  //outputs 'false'
     }

1 Ответ

1 голос
/ 26 мая 2010

Быстрый поиск документов AS3 говорит мне, что Растровое изображение имеет свойство bitmapData .

Вы получаете разные ошибки в каждом следе, потому что вы отслеживаете разные вещи. попробуйте просто отследить свойство, а не «Bitmap», чтобы увидеть, что на самом деле там хранится.

Ваш первый след вы отслеживаете событие, а второй MouseEvent. Ваша функция displayImage - это «Обработчик завершения загрузчика», поэтому целью будет объект LoaderInfo . В объекте LoaderInfo target ссылается на «Загруженный объект DisplayObject, связанный с этим объектом LoaderInfo». Но в MouseEvent цель будет другой. Вам нужно будет обратиться к документам для каждого события , чтобы узнать, какова будет цель.

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

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
...