Скопировать BitmapData из mx: Image - PullRequest
       18

Скопировать BitmapData из mx: Image

2 голосов
/ 03 сентября 2010

Как я могу скопировать или дублировать растровые данные из компонента mx: image?

Мне нужно отображать одно и то же изображение на нескольких экранах приложения, и мне не нужно загружать его несколько раз.

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

Ответы [ 2 ]

5 голосов
/ 03 сентября 2010

Image extends SWFLoader, который имеет свойство содержимого , которое будет содержать загруженный объект Bitmap.Дождитесь загрузки изображения, приведите содержимое к растровому изображению и прочитайте его bitmapData

public function imageLoadCompleteHandler(e:Event):void
{
    var bitmap:Bitmap = img.content as Bitmap;
    if(bitmap == null) {
        trace("loaded content is not an image");
        return;
    }
    bmpData = bitmap.bitmapData;
    //hurray..!
}
0 голосов
/ 03 сентября 2010

На самом деле, прочитав сообщение выше (и попробовав что-то), я думаю, что это неправильно.Прослушиватель Complete запускает мое второе изображение, поэтому я думаю, что оно загружается дважды.О, хорошо.

Я не мог разместить весь документ Flex, но это, похоже, сработало.Я добавил это в тег приложения: applicationComplete = "Run ();"

В тег mx: Script добавлено следующее:

    import mx.controls.Image;
    private function Run():void
    {
        var i:Image = new Image();
        i.source = first.source;
        addChild(i);

    }

И это просто изображение внетег script:

<mx:Image x="12" y="125" source="e53c04a51d5992fb77ab1e20c45ddc9f.jpeg" id="first" />

Я также попробовал это после установки источника i:

first.source = null; 

Чтобы увидеть, что происходит, изображение i сохраняет свой источник

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