Дублирование импортированной графики во Flash - PullRequest
1 голос
/ 24 января 2010

Я загружаю графику через класс загрузчика. Теперь мне нужно использовать его как исходное изображение и эскиз этого изображения. Увы, в AS3

нет «duplicateMovieClip» или чего-то подобного

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

Я заглянул в это и нашел несколько решений в Интернете, но все они, похоже, работают с изображениями из библиотеки и не загружаются с сервера.

Итак, как мне это сделать, не загружая изображение дважды?

Ответы [ 2 ]

3 голосов
/ 24 января 2010

Если бы только что говорили о растровом изображении, самое простое - просто поделиться данными BitmapData с другим экземпляром Bitmap. Смотрите ниже:

var existingBitmap:Bitmap; //which you have from the loader
var thumbNail:Bitmap = new Bitmpap(existingBitmap.bitmapData);

thumbNail.witdth = 64;
thumbNail.height = 64;

addChild(thumbNail);

Поскольку вы используете загрузчик, вы можете получить доступ к внешнему растровому изображению, загруженному вами через свойство content.

var existingBitmap:Bitmap = myLoader.content;
2 голосов
/ 24 января 2010

В зависимости от того, что вам нужно сделать, у вас есть три варианта.

  1. Загрузите его снова. Это, безусловно, самый простой способ, так как он все равно будет кэшироваться, поэтому вам не нужно будет дважды заходить на сервер.
  2. Используйте BitmapData.draw (). Создайте растровые данные и нарисуйте на них свой загрузчик, что тоже довольно просто, но вы не можете создавать анимацию без перерисовки.
  3. Загрузите его и вычеркните класс вашей графики (относится только к .swf) и используйте его для создания экземпляров копий. Посмотрите на getDefinitionByName . Это немного сложно, так как вы находитесь во власти песочницы, но это также самый правильный способ сделать это.
...