maicon_m 0 Denunciar post Postado Setembro 27, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 27, 2010 O código para remover é removeChild(MC) Ou removeChildAt() e da o numero Abraços Compartilhar este post Link para o post Compartilhar em outros sites
maicon_m 0 Denunciar post Postado Setembro 27, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 27, 2010 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
maicon_m 0 Denunciar post Postado Setembro 27, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 27, 2010 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
maicon_m 0 Denunciar post Postado Setembro 30, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 30, 2010 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
maicon_m 0 Denunciar post Postado Setembro 30, 2010 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
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 30, 2010 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