Duplicar um gráfico importado no flash
-
22-09-2019 - |
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?
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.
- 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.
- 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.
- 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.