Pergunta

Como você faz referência a um bitmap no palco em flash utilizando actionscript 3?

Eu tenho um bitmap no palco em flash e no final do filme que eu gostaria de trocá-lo para o próximo na seqüência, antes de o filme loops.em minha biblioteca, tenho 3 imagens, exportar para actionscript, com o nome da classe img1/img2/img3.aqui é como meu camadas em flash são estabelecidos.

layer 5 : mask2:MovieClip
layer 4 : img2:Bitmap
layer 3 : mask1:MovieClip
layer 2 : img1:Bitmap
layer 1 : background:Bitmap

no final do filme que eu gostaria de trocar img1 com img2, de modo que o filme loops perfeitamente, o ideal seria trocar img2 (na camada 4) com img3 e assim por diante, até eu chegar ao fim das minhas imagens.

mas eu não consigo descobrir como referência as imagens que já foram colocados no palco (em tempo de design), qualquer um tem alguma idéia de como fazer isso?

O final do filme, espero que o carregamento de imagens dinamicamente a partir do servidor web (eu tenho o código para este bit) e exibi-los, bem como img1/img2/img3.

Qualquer ajuda seria apreciada.

EDITAR:

@81bronco , Eu tentei isso, mas o nome da instância é acinzentado, para a gráfica, ele só me permite fazê-lo com movieclips e botões.Eu meio que tenho que trabalhar por transformá-los em moveclips e desmarcando as imagens no moveclip fora antes de adicionar um novo (usando algo mais simples, para o que vanhornRF sugerido), mas por algum motivo estranho quando a máscara chutes nas imagens eu limpo voltar para a máscara de animação.

Foi útil?

Solução

Para fazer referência a algo no palco, você precisa dar a fase de instância de um nome - não dê o símbolo na biblioteca de um nome de classe.

Clique sobre o item no palco e olhar para o painel de propriedades.Deve haver uma caixa de entrada de texto logo acima da entrada de caixas para o item dimensões.Introduza um nome.

Em outro lugar no seu código, você pode, em seguida, consulte o item no palco por seu nome de instância.

Outras dicas

Ele deve ser algo como isto:

imageHolder.removeChild( imageIndex )

ou

imageHolder.removeChildByName( imageName )

e depois que

imageHolder.addChild( newImage )

Eu provavelmente iria fazer algo parecido com isso em sua classe de documento

for(var i:int=0; i<numChildren; i++){
    trace(getChildAt(i),"This is the child at position "+i);
}

Eu faço isso porque eu ainda o código no flash IDE e seu depurador é muito doloroso para começar a trabalhar a maior parte do tempo é fácil de rastreamento variáveis fora, assim que você pode usar que o loop for para imprimir os nomes de objeto a um dos itens atualmente em seu palco, ou usar um depurador de programa para encontrar os objetos também.

Agora que você tem os filhos e em que o índice de eles realmente são, no seio do palco, você pode fazer referência a eles chamando getChildAt(int), você pode removeChildAt(int), você pode addChildAt(displayObject, int) e swapChildrenAt(int, int).O int nesses argumentos representaria a posição de índice, que foi devolvido pela sua instrução de rastreamento e o displayObject, obviamente, representam apenas qualquer coisa que você queria adicionar para o palco ou pai DisplayObject.

Usando os 4 comandos, você deve ser capaz de livremente re-organizar qualquer movieclips que você tem no palco de modo que elas apareçam para uma transição tranquila.

@81bronco deve-se, definitivamente, o nome de seus ativos no palco se você quiser exclusivamente de referência-los especificamente para evitar qualquer tipo de confusão, se não acaba sendo um monte de itens no palco

Ei Re0sless, quando você remover esses itens do palco têm qualquer ouvintes de eventos ligados a eles, temporizadores ou carregadores?Qualquer uma dessas coisas pode fazer um objeto ficar em flash de memória e não remover corretamente.Também em cima de apenas remover o item, talvez, experimentar o anulamento tão bem?Às vezes, o que ajuda na limpeza suas referências, de modo que possa ser devidamente destruídos.

Claro, ele poderia também ser algo bobo como remover o item em uma instância não remover o item do futuro quadros bem, mas eu realmente não acho que é o caso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top