Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

maicon_m

remover movieclip do stage

Recommended Posts

A pergunta pode ser básica, mas iniciante é assim mesmo né..

 

Estou inserindo os movieclips no stage via AS3. Quando clica em um botão insere um movieclip diferente. Mas não sei como tirar o que já estiver no stage. Não vale removeChild() porque não tenho como saber de antemão qual o movieclip que esta no palco. O ideal é que o mc que estiver no stage tenha a opacidade reduzida antes de desaparecer.

 

Meu código esta assim:

 


bt01.addEventListener(MouseEvent.CLICK, carrega1);
function carrega1(e:Event):void{
var novaImg:imagem1 = new imagem1();
this.addChild(novaImg);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo berseck, sei que você não quer dá o serviço pronto, mas como eu acesso o movieclip no stage? Essa é a questão. Como vou saber o número do mc?

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahah

Eu respondi o que você perguntou ;)

 

Se o MovieClip estiver instanciado como bola basta fazer

 

removeChild(bola);

 

exemplo:

var loader:Loader = new Loader();
loader.load(new URLRequest("http://forum.imasters.com.br/random_logos/logo3.png"));
addChild(loader);

setTimeout(remove, 3000);

function remove(){
	removeChild(loader);
}

Se você quiser a index dele ai você tem que fazer:

var a:Loader = new Loader();
var b:Loader = new Loader();

a.load(new URLRequest("http://forum.imasters.com.br/random_logos/logo3.png"));
addChild(a);

b.load(new URLRequest("http://forum.imasters.com.br/public/style_images/imasters2010/ipro.png"));
addChild(B);

setTimeout(remove, 3000);

function remove(){
	var num1 = this.getChildIndex(a);
	var num2 = this.getChildIndex(B);
	trace("Loader a index ="+num1);
	trace("Loader b index ="+num2);
	
	removeChildAt(num2);
}

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a resposta completa berseck =) Estou progredindo aqui.

 

Entendi o getChildIndex e o removeChild.

 

Mas como estou desenvolvendo uma galeria, eu não vou saber qual o movieclip que esta no stage. Pois cada imagem carregada/ampliada será posta sobre a que já esta no stage. Sendo assim, a antiga eu gostaria de remover após reduzir sua opacidade. A questão é chegar até ela, essa imagem que já esta no stage e precisa ser removida. Seria algo como (codigo tosco eu sei):

 


var antigo:MovieClip = stage.parent.getChildIndex()

E pessoal, eu estou me programando para ler a Bíblia do AS3, mas até lá, compreendam estas perguntas nada haver.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se é uma imagem sobre a que já existe.

 

Acredito que você ta clicando na que existe e então ela vai abrir a informação correto?

 

Se for basta fazer no evento

 

image.addEventListerner(MouseEvent.CLICK, abreImagem);

function abreImagem(e:MouseEvent):void{
 //e.curretTarget.getChildIndex();
 //e.target.currentTarget.getChildIndex(); 
}

Não tenho certeza qual dos 2 é correto mas da uma testada nos 2

 

O caminho vai ser por ae.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

O lance é.:

 

Tenho miniaturas que quando clicadas é carregado no stage a foto grande. Eu quero que quando clica em uma miniatura, a imagem grande que estiver no stage desapareça e seja carregada a nova imagem no lugar.

 

O que não sei fazer é acessar a imagem que já esta no stage para fazer com que ela desapareça reduzindo sua opacidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então faça um loader especifico para a imagem no meio e remova ele apenas sempre

Ou simplesmente recarrega a imagem no loader do meio sempre...

 

Se ele é 1 só você não precisa criar 500 vezes o mesmo loader... basta criar uma vez e fica re chamando o mesmo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou fazendo metade as3 metade na unha. Eu tenho todos os movieclips com as imagens dentro. E vou adicionando conforme as miniaturas são clicadas. Aprendendo as3 ainda. Então preciso saber como acessar o que já esta no stage. o único listener que eu tenho é quando clica na miniatura, que daí sei qual mc colocar no stage. Mas não sei acessar o que já esta lá para removê-lo. Imagino que seria algo como no js que acessa a árvore DOM do elemento e galga até o elemento desejado. Tipo: -root-stage-movieclips-array[3]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você criar o Loader assim:

var loader:Loader = new Loader();
var url = "http://forum.imasters.com.br/random_logos/logo2.png";

 var thumb:Loader = new Loader();
 thumb.load(new URLRequest(url));
 thumb.name = url;
 thumb.addEventListener(MouseEvent.CLICK, showGrande);
 addChild(thumb);


function showGrande(e:Event):void{
 loader.load(new URLRequest(e.currentTarget.name));
 loader.x = stage.stageWidth/2;
 loader.y = stage.stageHeight/2;
 addChild(loader);
}

Você basicamente vai ter o efeito que você quer ai tudo que você vai sempre ter uqe remover é o loader

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.