Ir para conteúdo

POWERED BY:

Arquivado

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

moraes99

Caixa de texto dinamica dentro do MC

Recommended Posts

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

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

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

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


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

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

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

×

Informação importante

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