Ir para conteúdo

POWERED BY:

Arquivado

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

lmcosta

[Resolvido] Como passar argumentos para metodos no AS3

Recommended Posts

Salve Pessoal.

 

Meu nome é Lucas, e sou programador AS2 á 5 anos, decidi a pouco tempo mudar para a versão AS3 do Actionscript e ainda estou encontrando alguns problemas para me adptar, o principal deles está ligado a questão de eventos e métodos do AS3 e gostaria de saber se alguém pode me ajudar.

 

Nos exemplos abaixo tenho dos códigos que fazem a mesma coisa um em AS2 e outro em AS3, a diferença é que no exemplo com AS2 eu consigo chamar o método "funcTeste" direto do onRelease do botão "btTeste" passando o argumento diretamente para o método desejado, já na versão para AS3 eu tenho que criar um novo método e a partir dele chamar o método principal "funcTeste" veja no código abaixo

 

AS2

var btTeste:MovieClip;
function funcTeste (_arr:Array, _obj:Object):Void 
{
	trace("Meu Array é: " + _arr + "Meu nome é: " + _obj.nome + " Minha Idade é: " + _obj.idade)
}
btTeste.onRelease = function  () 
{
	funcTeste(["imastes","portal","forum"], {nome:"Lucas",idade:26})
}

AS3

var btTeste:MovieClip
btTeste.buttonMode = true
addChild(btTeste)


function funcTeste (_arr:Array, _obj:Object):void 
{
	trace("Meu Array é: " + _arr + "Meu nome é: " + _obj.nome + " Minha Idade é: " + _obj.idade)
}

function clicado (e:MouseEvent):void 
{
	funcTeste(["imastes","portal","forum"], {nome:"Lucas",idade:26})
}

btTeste.addEventListener(MouseEvent.CLICK,clicado)

A pergunta que eu gostaria de fazer é a seguinte:

 

Como posso passar argumentos direto no addEventListener no AS3 ?

 

Agradeço quem puder me ajudar.

 

Abraços

 

Lucas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não se se entendi bem mas acho que deve ser isso:

 

function funcTeste (_arr:Array, _obj:Object):void
{
	trace("Meu Array é: " + _arr + "Meu nome é: " + _obj.nome + " Minha Idade é: " + _obj.idade)
}

btTeste.addEventListener(MouseEvent.CLICK,
	function (){
		funcTeste(["imastes","portal","forum"], {nome:"Lucas",idade:26})
	}
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve jck

 

realmente deu certo, mas essa é a forma correta de se fazer isso ?

não tem um jeito de passar apenas argumentos para o método ?

 

tipo:

 

btTeste.addEventListener(MouseEvent.CLICK,clicado, argumentos)

Vlw.!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Imcosta

 

não é possivel pois a sintaxe do eventListener é essa:

 

objeto.addEventListener(tipo, função);

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Jck vlw a dica man.

 

Na verdade já tinha confirmado isso na documentação oficial do AS3, mas acho um pouco estranho isso, não ficou usual mas funcionando é o que importa!

 

Abraços e Vlw a dica

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.