Ir para conteúdo

Arquivado

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

Phantoxe

[AS 3.0] Alguém entende bem de CLASSES ?

Recommended Posts

Galera.. olhe essa classe minha bem simples:

 

package {
 
	import flash.display.*;
	import flash.events.*;
 
	public class Main extends MovieClip {
		
		public function Main() {
		
							   }
				
		public function enviarDados(evt:MouseEvent):void {
			trace(nome_ti.text);
		}
		
	}

}

O problema tá no SEGUINTE... do jeito que eu projetei TODO meu SWF... o nome_ti não aparece de jeito nenhum no PRIMEIRO FRAME do FLASH... e dai eu tenho problemas.. pois o FLASH diz que não consegue encontrar o NOME_TI para recuperar o que foi digitado nele. Aparecendo a seguinte mensagem:

 

1120: Access of undefined property nome_ti.

 

E volte e meia eu tenho esse problema foi faço Métodos que acessam objetos que só apareceram depois de um determinado frame no FLASH... e dai cai sempre neste problema...

 

Alguém pode me dar uma solução pra este erro ??

 

Valeu

 

Eduardo Burko

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera.. olhe essa classe minha bem simples:

 

package {
 
	import flash.display.*;
	import flash.events.*;
 
	public class Main extends MovieClip {
		
		public function Main() {
		
							   }
				
		public function enviarDados(evt:MouseEvent):void {
			trace(nome_ti.text);
		}
		
	}

}

O problema tá no SEGUINTE... do jeito que eu projetei TODO meu SWF... o nome_ti não aparece de jeito nenhum no PRIMEIRO FRAME do FLASH... e dai eu tenho problemas.. pois o FLASH diz que não consegue encontrar o NOME_TI para recuperar o que foi digitado nele. Aparecendo a seguinte mensagem:

 

1120: Access of undefined property nome_ti.

 

E volte e meia eu tenho esse problema foi faço Métodos que acessam objetos que só apareceram depois de um determinado frame no FLASH... e dai cai sempre neste problema...

 

Alguém pode me dar uma solução pra este erro ??

 

Valeu

 

Eduardo Burko

 

A sugestao eh crie um metodo que criara a caixa de texto dinamica e podera fazer outras coisas nesse metodo mesmo e depois chame ele atraves do objeto da classe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou...

modifica a classe deixando o metodo com as ações que utilizando o tipo de dado que você quer, no caso uma String.. e quando for o momento de chamar a ação, você chama usando AS no frame mesmo, atribuindo o conteudo da caixa de texto como parametro no metodo.

 

 

//----- no frame 
enviarDados(nome_ti.text);
//----- na metodo
public function enviarDados(conteudo:String):void {
			trace(conteudo);
}
/*
vi que existe um MouseEvent ali, então creio que você está usando um botao, adicione a ação ao botao no frame tambem tipo
*/

botao.addEventListener(MouseEvent.CLICK, function (evt:Event):void{enviaDados(nome_ti.text)});
pra quem não quer ter o trabalho de recomeçar um trabalho por um problema, a velha gambiware pode resolver, mas conselho pra proxima.. projeta tudo antes de começar a trabalhar.. literalmente poe no papel, ai você num precisa de gambiware.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara... dentra da minha CLASSE MAIN.AS eu coloquei esse Método logo depois do contrutor.

 

public function enviaDados(nome:String):void {
			trace(nome);
}

E lá no meu botão... isso na TIMELINE dai... coloquei assim:

 

enviar_mc.addEventListener(MouseEvent.CLICK, function (evt:Event):void{enviaDados(nome_ti.text)});

E está me retornando este erro:

 

1180: Call to a possibly undefined method enviaDados.

 

Não adianta me falar pra eu adicionar o LISTNER via AS porque não rola... pois o FRAME que preciso adicionar o LISTNER não aparece no PALCO quando minha CLASSE é carregada... só depois que o usuário clicar no botão CONTATO dai... ele vai para um monte de animação pra depois aparecer o botão que preciso colocar o LISTNER... ou seja... nem o ADDFRAMESCRIPT rola neste caso.

 

Valeu ?? Me ajudem ai... que simplesmente estou a 1 semana e não consigo resolver...

 

Eduardo Burko

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não sei o sei nivel de conhecimento sobre AS e POO, vai a pergunta:

Você está instanciando a classe?

como ela está linkada tipo, como ela está sendo inicializada?

 

vale lembrar, que uma CLASSE não é igual um arquivo actionscript simples, uma classe é um "tipo de dado", assim como você coloca:

var arr:ArrayCollection = new ArrayCollection();

você precisa colocar

var myClass:MinhaClasse = new MinhaClasse();

entaum, pra usar, você teria que fazer:

 

var myClass:MinhaClasse = new MinhaClasse();

myClass.enviaDados(nome_ti.text);

 

bom, imagino que não seja isso, então, se for possivel, coloque o .fla e .as aqui pra gente analizar.

 

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Testando Sistemas tem razao , você pode instancia a classe atraves da barra de propriedades onde tem Document Class, ali você coloca o nome da classe.

 

Abs

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.