Criar NavigatorContent com campo text e button no Flex?

Pessoal, tenho que criar um chat privado no Flex, para isso criei um campo do tipo TabNavigator, dou um addChild para incluir um NavigatorContent e dentro desse NavigatorContent estou tentando colocar um campo Text e um Butto, mas não esta dando certo.
A nova aba é criada mas não consigo colocar o Text e o Button dentro dela.

Minha função esta assim:

public function chatPrivado(dados:Object):void
{
	var aux:String = "";
	var nomeUsuario:String = "";
	var novaAba:NavigatorContent = new NavigatorContent();
	var novoText:TextInput = new TextInput();
	var novoBt:Button = new Button();
	
	var cont:int = 0;
	for each ( var usuarioId:String in dados )
	{
		if(this.id_usuario != usuarioId && cont==1)
		{
			listaChatPrivado.push({id: usuarioId});
			for(var i:int=0; i<this.ListaUsuariosAux.length; i++)
			{
				if(this.ListaUsuariosAux[i].idUsuario.toString() == usuarioId)
				{
					nomeUsuario = this.ListaUsuariosAux[i].nome.toString();
					
					novaAba.width = 100;
					novaAba.height = 100;
					novaAba.label = nomeUsuario;
					novaAba.id = usuarioId;
					abasChat.addChild(novaAba);
					
					novoText.height = 56;
					novoText.bottom = 10;
					novoText.alpha = 0.6;
					novoText.left = 10;
					novoText.right = 82;
					
					novoBt.click = "enviarMensagem()";
					novoBt.alpha = 0.6;
					novoBt.bottom = 10;
					novoBt.height = 56;
					novoBt.left = 10;
					novoBt.right = 82;
					
					novaAba.addChild(novoText);
					novaAba.addChild(novoBt);
					
					break;
				}
			}
		}
		cont++;
	}
}

Ta certo do jeito que eu fiz ?!
Na declaração do Butto tbm ta dando problema, aparece a msn “1000: Ambiguous reference to Button.”, alguém sabe pq da esse erro ?!

Obrigado!

Pesquisando um monte no google, finalmente achei uma pagina que mostrava a solução para esse problema!
Eu não posso usar addChild para adicionar, devo usar o comando addElement()!
Agora ta indo!

Mas to com outra duvida, quando estou setando paramentros para a variavel do botao eu fiz ‘novoBt.click = “enviarMensagem()”;’ mas aparece uma msg dizendo que nao existe o ‘click’ e no campo text eu não consigo setar a função “enviarMensagem()” no campo texto (novoText.enter = “enviarMensagem()”:wink: pq diz que nao existe o comando “enter”;
Mas estranho, que quando eu adiciono um campo texto ou botao diretamente no aba View eu consigo setar a chamada para essa função, mas quando crio o componente declarando ele como variável não da certo. Como posso setar a chamada para essa função no campo de texto e no botao pelo as3 ???

Obrigado!

Para o evento de mouse click fica assim

[code]seuButton.addEventListener(MouseEvent.CLICK, seuEventoClick);

//a imprementação do método da chamada fica assim
private function seuEventoClick(event:MouseEvent):void
{
trace(“Button clicked!”);
}[/code]

Todos os eventos que quiser adicionar via AS3 segue esse padrão mudando apenas os parâmetros.
Se quiser evento de apertar ‘Enter’ por exemplo você tem que usar KeyEvent ou algo do tipo e fazer a verificação no método associado. Flw!

[quote=Ivan Alves]Para o evento de mouse click fica assim

[code]seuButton.addEventListener(MouseEvent.CLICK, seuEventoClick);

//a imprementação do método da chamada fica assim
private function seuEventoClick(event:MouseEvent):void
{
trace(“Button clicked!”);
}[/code]

Todos os eventos que quiser adicionar via AS3 segue esse padrão mudando apenas os parâmetros.
Se quiser evento de apertar ‘Enter’ por exemplo você tem que usar KeyEvent ou algo do tipo e fazer a verificação no método associado. Flw![/quote]

Ae, deu certo!
Mas tentei aplicar a mesma ideia em uma variavel do tipo textInput e não funciona, da erro no codigo, só que no caso do campo de texto ele deve chamar a função quando eu preciono a tecla ‘Enter’.

O codigo que fiz foi esse:

var novoText:TextInput = new TextInput();

novoText.addEventListener(Keyboard.ENTER, enviarMensagem);

Substitui a variavel novoText para novoBt e funciono com o botao, mas com o campo de texto nao deu.
Como deve ser no textInput ???!

Obrigado!

Cara nunca usei esse Keyboard.ENTER, mas já fiz a mesma coisa que você quer acredito que era com KeyDown e depois verificava se erra o botão enter que tinha sido pressionado. Vou procurar esse código depois te passo!

Olhei rapidamente aqui na net e montei esse código testa ai

//primeiro adiciona o evento
seuInput.addEventListener(KeyboardEvent.KEY_UP, keyHandler);

//depois trata o evento ao soltar a tecla pressionada
//use KEY_DOWN caso queira chamar ao pressionar a tecla
private function keyHandler(event:KeyboardEvent):void {
     //keyCode guarda a tecla pressionada
     if(event.keyCode == KeyboardEvent.ENTER){
             //códigos aqui
     }
}

http://livedocs.adobe.com/flex/3/html/help.html?content=events_11.html

[quote=Ivan Alves]Olhei rapidamente aqui na net e montei esse código testa ai

//primeiro adiciona o evento
seuInput.addEventListener(KeyboardEvent.KEY_UP, keyHandler);

//depois trata o evento ao soltar a tecla pressionada
//use KEY_DOWN caso queira chamar ao pressionar a tecla
private function keyHandler(event:KeyboardEvent):void {
     //keyCode guarda a tecla pressionada
     if(event.keyCode == KeyboardEvent.ENTER){
             //códigos aqui
     }
}

http://livedocs.adobe.com/flex/3/html/help.html?content=events_11.html[/quote]

Funciono! Obrigadão!

Mas fiquei em duvida em uma coisa, no botão e no campo texto, quando eu uso o comando ‘addEventListener();’, eu coloco o nome da função que deve ser chamada, como que eu passo um parâmetro para a função que vai ser chamada no addEventListener ???!!
Tem como ou tem que fazer diferente ?!
Pois eu pretendo, quando montar a chamada para função, passar por parâmetro um ID de usuário.

Valeu!

[quote=chamuska]
Funciono! Obrigadão!

Mas fiquei em duvida em uma coisa, no botão e no campo texto, quando eu uso o comando ‘addEventListener();’, eu coloco o nome da função que deve ser chamada, como que eu passo um parâmetro para a função que vai ser chamada no addEventListener ???!!
Tem como ou tem que fazer diferente ?!
Pois eu pretendo, quando montar a chamada para função, passar por parâmetro um ID de usuário.

Valeu![/quote]

Nunca precisei dessa forma, quando uso um parâmetro pego ele de alguma variável ou de algum componente de tela. Isso não resolveria?
Vou verificar se possui outra possibilidade.

[quote=Ivan Alves][quote=chamuska]
Funciono! Obrigadão!

Mas fiquei em duvida em uma coisa, no botão e no campo texto, quando eu uso o comando ‘addEventListener();’, eu coloco o nome da função que deve ser chamada, como que eu passo um parâmetro para a função que vai ser chamada no addEventListener ???!!
Tem como ou tem que fazer diferente ?!
Pois eu pretendo, quando montar a chamada para função, passar por parâmetro um ID de usuário.

Valeu![/quote]

Nunca precisei dessa forma, quando uso um parâmetro pego ele de alguma variável ou de algum componente de tela. Isso não resolveria?
Vou verificar se possui outra possibilidade.[/quote]

Então, é que os campos são dinamicos e eu preciso passar o id do usuario de destino e o valor do campo de texto pra que ele seja enviado.
To procurando aqui como q posso faze isso tbm!

Valeu!