moraes99 0 Denunciar post Postado Fevereiro 3, 2010 Eai Pessoal! Já procurei um tópico igual mas não encontrei. Não estou conseguindo trocar o texto da caixa de texto que foi duplicada. //cria um novo mc var novoMC:quadro = new quadro();//o quadro esta na biblioteca com linkage 'quadro' function cria_mc(){ novoMC.x = 200; novoMC.y = 200; novoMC.name = 'teste'; novoMC.letra.text = 'A'; addChild(novoMC); } cria_mc(); //aqui eu mudo o alpha dele e funciona getChildByName("teste").alpha = .5; //É isso que não funciona getChildByName("teste").letra.text = 'B'; Alguem sabe como que muda o texto da nova caixa para B? Abraços ps: A vida era mais facil com as2 Compartilhar este post Link para o post Compartilhar em outros sites
DanielGianni 0 Denunciar post Postado Fevereiro 4, 2010 Eu também sinto muita dificuldade em compreender essa nova hierarquia dos elementos em AS3. No seu caso sei que funciona acessar dessa maneira: //cria um novo mc var novoMC:quadro = new quadro();//o quadro esta na biblioteca com linkage 'quadro' function cria_mc(){ novoMC.x = 200; novoMC.y = 200; novoMC.name = 'teste'; novoMC.letra.text = 'A'; addChild(novoMC); } cria_mc(); //aqui eu mudo o alpha dele e funciona getChildByName("teste").alpha = .5; //É isso que não funciona //getChildByName("teste").letra.text = 'B'; novoMC.letra.text = 'B'; Compartilhar este post Link para o post Compartilhar em outros sites
DanielGianni 0 Denunciar post Postado Fevereiro 4, 2010 Acho que funciona assim, quando você coloca manualmente algo no stage e linka ai sim você hierarquia por getChild mas quando você manipula pelo AS3 você precisa usar o objeto que você criou e não essas referência por getChild. A não ser que seja "filho" do objeto que você criou... Se letra fosse um textField criado via AS3 e tivesse sido colocado dentro de do novoMC aí sim acredito que o novoMC.getChildByName("letra").text = 'B' iria funcionar. Por favor, pessoal mais experiente em AS3 me corriga se o raciocínio estiver equivocado! Compartilhar este post Link para o post Compartilhar em outros sites
moraes99 0 Denunciar post Postado Fevereiro 4, 2010 Boa tarde Daniel! Quando eu uso (novoMC.letra.text = 'B';), ai funciona, mas eu queria usar o (teste.letra.text = 'B';) pq vou duplicar 200 vezes o mc. at´ Compartilhar este post Link para o post Compartilhar em outros sites
DanielGianni 0 Denunciar post Postado Fevereiro 5, 2010 var _instancias:Array = new Array(); // Aqui está o segredo, vamos criar uma estrutura (vetor) // para guardar as intâncias que forem criadas //cria um novo mc var novoMC:quadro = new quadro();//o quadro esta na biblioteca com linkage 'quadro' function cria_mc(){ novoMC.x = 200; novoMC.y = 200; novoMC.name = 'teste'; novoMC.letra.text = 'A'; addChild(novoMC); _instancias.push( novoMC ); // Adicionada a instância na tela com addChild nós vamos adicionar a instância em nosso vetor } cria_mc(); //aqui eu mudo o alpha dele e funciona getChildByName("teste").alpha = .5; //É isso que não funciona //getChildByName("teste").letra.text = 'B'; novoMC.letra.text = 'B'; // // Viu agora você tem todas as instâncias no vertor _instancias // independente do número de vezes que você fizer // // Veja um exemplo de como percorrer as instâncias por exemplo // para remover todas elas da tela, mas você poderia mudar a // lógica para fazer qualquer ação para uma instância de um // name específico // // função para remover instâncias function removeInstancias():void { for ( var indice:String in _instancias ) { if ( _instancias[indice] != "LIXO" ) { trace("Removeu ["+_instancias[indice].name + "]"); _root.removeChild( _instancias[indice] ); _instancias[indice]="LIXO"; } } } Compartilhar este post Link para o post Compartilhar em outros sites
moraes99 0 Denunciar post Postado Fevereiro 5, 2010 Eai DanielGianni tudo bom! Cara você está certo, faltou o segredo do array. Agora funcionou. Só uma coisa, na function removeInstancias() tem um "_root" que não existe. Obrigado! abraços. Compartilhar este post Link para o post Compartilhar em outros sites
DanielGianni 0 Denunciar post Postado Fevereiro 5, 2010 Eai DanielGianni tudo bom! Cara você está certo, faltou o segredo do array. Agora funcionou. Só uma coisa, na function removeInstancias() tem um "_root" que não existe. Obrigado! abraços. Xi desculpa na pressa de te responder acabei não revisando o código que é de uma classe minha que faz lista de opções (tipo um radiobox ou menu pulldown). Compartilhar este post Link para o post Compartilhar em outros sites