Ir para conteúdo

POWERED BY:

Arquivado

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

hgb7

[Resolvido]Como passar um função para o Metodo Construtor

Recommended Posts

Bom dia Galera

 

Como passar uma função para o método construtor, veja o exemplo abaixo.

 

package
{
	import flash.display.*;
	import flash.events.*;
	public class MinhaClasse extends MovieClip
	{
		private var disparaCall:Function;
                private var BotaoMc:MovieClip;
		public function MinhaClasse(_BotaoMcIni:MovieClip, _disparaCallIni:Function)
		{			
			disparaCall = _disparaCallIni;
			BotaoMc = _BotaoMcIni;
                        chamaOuvintes();
		}
		private function chamaOuvintes():void
		{
			BotaoMc.buttonMode = true;
			BotaoMc.addEventListener(MouseEvent.MOUSE_DOWN,funcaoPress);
		}
                private function funcaoPress(evento:MouseEvent):void
		{
			if(disparaCall != undefined)
                        {
                           disparaCall();
                        }
		}
        }
}

//--> no fla

import MinhaClassse;
var meubt:MinhaClasse = new minhaClasse (this.btScrollMov,funcaoTeste);
function funcaoTeste()
{
   trace("ok");
}

o erro que retorna é esse

 

1067: Implicit coercion of a value of type Function to an unrelated type String.

 

valew PessoAll

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você copiou e colou seu código aqui? É melhor copiar e colar, pois as vezes tem no seu código um erro que você n percebeu, e que você pode não cometer ao reescrever.

Digo isso, pois pelo codigo que você deixou aqui no forum, os erros seriam outros, relacionados a uns erros de digitação:

 

import MinhaClassse; // <-- Aqui, 3 's'
var meubt:MinhaClasse = new minhaClasse (this.btScrollMov,funcaoTeste); // <-- Aqui, minuscula no nome da classe

ficando:

 

import MinhaClasse; //Apesar de desnecessário
var meubt:MinhaClasse = new MinhaClasse (this.btScrollMov,funcaoTeste);

Além disso compara o disparaCall com null, e não com undefined.

 

O restante parece correto, usando esse código que você postou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

package
{
        import flash.display.*;
        import flash.events.*;
        public class MinhaClasse extends MovieClip
        {
                private var disparaCall:Function;
                private var BotaoMc:MovieClip;
                public function MinhaClasse(_BotaoMcIni:MovieClip, _disparaCallIni:Function)
                {                       
                        disparaCall = _disparaCallIni;
                        BotaoMc = _BotaoMcIni;
                        chamaOuvintes();
                }
                private function chamaOuvintes():void
                {
                        BotaoMc.buttonMode = true;
                        BotaoMc.addEventListener(MouseEvent.MOUSE_DOWN,funcaoPress);
                }
                private function funcaoPress(evento:MouseEvent):void
                {
                        if(disparaCall != null)
                        {
                           disparaCall();
                        }
                }
        }
}

//--> no fla

import MinhaClasse;
var meubt:MinhaClasse = new MinhaClasse (this.btScrollMov,funcaoTeste);
function funcaoTeste()
{
   trace("ok");
}

valew Michel Araújo era o null mesmo

 

Se você puder me ajudar no meu outro topico

 

http://forum.imasters.com.br/index.php?/topic/377548-carregamento-meio-esquisito/

 

valew

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.