Pergunta

Estou carregando um gráfico através da classe Loader. Agora eu preciso usá -lo como a imagem original e uma miniatura dessa imagem. Infelizmente, não há "duplicatemovieclip" ou algo assim no AS3

Se eu adicionar -a à visualização normal e depois à miniatura, apenas a miniatura é mostrada e vice -versa.

Eu pesquisei no Google para isso e encontrei várias soluções on -line, mas todas elas parecem funcionar com imagens da biblioteca e não carregadas de um servidor.

Então, como faço isso sem precisar carregar a imagem duas vezes?

Foi útil?

Solução

Se estavam apenas falando sobre uma imagem de bitmap, o mais simples é apenas compartilhar o bitmapdata com outra instância de bitmap. Veja abaixo:

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

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

addChild(thumbNail);

Como você está usando um carregador, você pode acessar a imagem de bitmap que carregou externamente através do content propriedade.

var existingBitmap:Bitmap = myLoader.content;

Outras dicas

Dependendo do que você precisa fazer com ele, você tem três opções.

  1. Carregue novamente. De longe, o mais fácil, ele será armazenado em cache de qualquer maneira, para que você não precise acertar o servidor duas vezes.
  2. Use bitmapdata.draw (). Crie um bitmapdata e desenhe seu carregador, também é muito fácil, mas você não pode fazer qualquer animação sem precisar redesenhar.
  3. Carregue -o e retire a classe do seu gráfico (aplica -se apenas ao .SWF) e use -o para instanciar cópias. Dar uma olhada em getDefinitionByName. Isso é um pouco complicado, pois você está à mercê da caixa de areia, mas também é a maneira mais adequada de fazê -lo.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top