Ir para conteúdo

POWERED BY:

Arquivado

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

Loma

[Resolvido] Preencher campo texto dentro de um swf externo

Recommended Posts

Oi gente to na fase do desespero ja com esse problema.

Eu consigo normalmente carregar meu swf externo pra dentro de um movieclip vazio. o problema é que esse swf externo tem um campo de texto chamado txtSO e eu preciso pelo meu arquivo .as externo principal escrever um texto e aparecer dentro do input do swf externo no mc.

 

alguém sabe como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para carregar o swf externo você deve ter adicionado um listener para este carregamento.

No método de retorno quando completar o carregamento, tente isso:

 

private function onComplete (e:Event):void {
   trace(e.target.txtSO);
   e.target.txtSO.text = "texto";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Italo, fiz o que você falou mas nao foi :(

 

deu esse erro:

ReferenceError: Error #1069: Propriedade txtSO não encontrada em flash.display.LoaderInfo e não há valor padrão.

at ClassUser/onComplete2()

Compartilhar este post


Link para o post
Compartilhar em outros sites

public function OffLineAuthenticate() {

var so:SharedObject = SharedObject.getLocal("testeShO");

if (so.data.login == _mcLogin.txtLogin.text && so.data.senha == _mcLogin.txtSenha.text)

{

_mcLogin.txtAviso.text = so.data.login

 

_mcSWF = new mcSWF();

addChild(_mcSWF)

 

//Carregando Departamento Externo

var carregador:Loader = new Loader();

var arquivo:String = "externo.swf";

var requisicao:URLRequest = new URLRequest(arquivo);

carregador.load(requisicao);

carregador.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete2);

_mcSWF.addChild(carregador);

 

}

else

{

_mcLogin.txtAviso.text = "Login incorreto."

}

 

}

 

private function onComplete2(event:Event):void {

 

trace(event.target.txtSO);

event.target.txtSO.text = "texto";

 

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

o trace retorna isso:

 

[object LoaderInfo]

 

to ficando desesperada ja, :(

 

 

uma das opções é:

//

da uma nome para seu carregador:

carregador.name = "carregador";

//

acessando o campo de texto:

_mcSWF.getChildByName("carregador").content.txtSO.text = "texto";

//

é para funcionar

 

Juliano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Juliano nada ainda.

deu esse erro:

1119: Access of possibly undefined property content through a reference with static type flash.display:DisplayObject.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Descobri para você Paloma hehehehe

Quando você faz o load, o evento que ele envia para o onComplete2 tem o conteúdo do seu swf.

 

Ficaria assim:

 

private function onComplete2(event:Event):void {
   var content:MovieClip = event.target.content as MovieClip;
   content.txtSO.text = "texto";
}

Testa agora e vamos ver se dá certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ITALOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

Resolveu menino, cara você nao tem noçao do alivio que to agora, eu tava horassssss tentando resolver isso.

 

MUITO OBRIGADA MESMOOOOOOOOO!!!! :)

 

Posso só abusar mais um pouco?

me explica melhor? eu sou nova em action script entao nao entendi esse content.

 

 

Mas muito obrigada mesmo hein!

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehehehehehehe

de nada!

 

Eu não sou expert em action, mas acredito que esse content seja o swf que você loadou, seria tipo um container para guardar e passar para o evento.

 

Se você digitar apenas event. vai aparecer uma janelinha com os métodos que correspondem ao evento loaderInfo, e dentro delas tem a opção de content, que seria o conteúdo do loaderInfo, ou seja, seu swf loadado.

 

Não sei se no editor do Flash aparece esses métodos, eu uso o FlashDevelop para criar minhas classes, e ele lista tudo, muito melhor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Italo então agora eu preciso fazer o inverso. :)

eu entrei com um valor no campo de texto que esta no swf externo txtSO e criei um botao no swf btEnvia.

ja coloquei o listener pro botao no evento click.

eu preciso que quando clicar eu pegue o valor do campo texto do swf e popule outro campo texto no palco principal.

 

O problema é que como foi dessa forma content eu nao consigo usar essa propriedade fora do escopo da funçao do evento.

 

Pode ajudar?

bjsssss

Compartilhar este post


Link para o post
Compartilhar em outros sites

Declare no começo de sua function

Ou seja fora dela

 

var content:MovieClip = new MovieClip();

public function OffLineAuthenticate() {
	var so:SharedObject = SharedObject.getLocal("testeShO");
	if (so.data.login == _mcLogin.txtLogin.text  && so.data.senha == _mcLogin.txtSenha.text)
	{
	_mcLogin.txtAviso.text = so.data.login
	
	_mcSWF = new mcSWF();
	addChild(_mcSWF)
	
	//Carregando Departamento Externo
	var carregador:Loader = new Loader();
	var arquivo:String = "externo.swf";
	var requisicao:URLRequest = new URLRequest(arquivo);
	carregador.load(requisicao);
	carregador.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete2);
	_mcSWF.addChild(carregador);
	
	}
	else
	{
	_mcLogin.txtAviso.text = "Login incorreto."
	}

}

private function onComplete2(event:Event):void {
   content = event.target.content as MovieClip;
   content.txtSO.text = "texto";
}

btEnvia.addEventListener(MouseEvent.CLICK, envia);

function envia(){
   //seu código
}

 

Abraços

E bons estudos ;)

 

PS: Uma dica, já que você está começando, tudo que for var é preferivel que você declare fora das funções assim elas passam a valer para qualquer outra função. Pois cada var que você criar dentro de uma função só vai valer dentro dessa função e mais nenhuma.

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.