Ir para conteúdo

POWERED BY:

Arquivado

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

linoart

TimerEvent na classe com erro. (AS3)

Recommended Posts

Estou tentando colocar o evento TimerEvent chamando de uma classe externa, e quando o evento acontece o mc muda de posição.

 

Acontece que dá esse erro:

 

1046: Type was not found or was not a compile-time constant: Timer.

 

1180: Call to a possibly undefined method Timer.

 

Não sei o que está acontecendo. Tentei mudar o código com funções diferentes mas não deu certo

 

 

package

{

import flash.display.MovieClip;

import flash.events.*;

 

 

 

public class mcTempo extends MovieClip

{

 

public var quad:reta;

public var timer:Timer;

 

 

public function mcTempo()

{

var quad:MovieClip = new reta();

addChild(quad);

quad.x = 30;

quad.y = 100;

tempo();

 

}

 

 

 

public function tempo():void

{

trace("foi timer");

 

timer = new Timer(500);

timer.addEventListener(TimerEvent.TIMER, executa);

timer.start();

 

}

 

function executa(evt:TimerEvent)

{

quad.x += 30;

quad.rotation += 45;

 

 

}

 

}

 

 

 

}

 

 

No .fla tem apenas o mc "reta" com linkage e nada no palco. Help!!!!

 

 

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu importei a classe. mas a classe que to usando é do pacote flash.events, mesmo importando deu erro. ela direto no .fla rodou normal.

 

agora esse flash.utils nunca tinha usado; ela tem a mesma utilidade da flash.events?

 

pra eu colocar ela preciso chamar ela no listener. qual é sintaxe dela no listener? e a variavel dela também é do tipo Timer?

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

não é isso, você esta usando a classe Timer no AS, então tem que importar ela, você precisa das duas, a Timer e a TimerEvent

no .FLA ele carrega automaticamente essas classes, mas num arquivo .AS tem que importar, então coloca no inicio da classe

junto com os outros import:

 

 

import flash.display.MovieClip;
import flash.events.*;
import flash.utils.Timer;

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu coloquei, só que agora aparece o seguinte erro:

 

 

TypeError: Error #1009: Cannot access a property or method of a null object reference.

at mcTempo/::executa()

at flash.utils::Timer/flash.utils:Timer::_timerDispatch()

at flash.utils::Timer/flash.utils:Timer::tick()

Compartilhar este post


Link para o post
Compartilhar em outros sites

você esta declarando o "quad" duas vezes, na classe e dentro do construtor, deixe assim:

 

 

public function mcTempo()
{
  quad= new reta();
  addChild(quad);
  quad.x = 30;
  quad.y = 100;
  tempo();

}

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo!! caramba, nunca ia saber que tem evento que usa 2 classes!

 

tem alguma algum site ou documento que você conhece que mostra quais eventos utilizam mais de uma classe?

 

thanks:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema não é que um evento usa duas classes, mas que você estava tentando usar uma classe sem importa-la (a Timer no caso)

você estava usando 2 classes, a Timer e a TimerEvent, por isso 2 imports

 

 

 

 

[]´s

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.