2015-01-22 5 views
0

Ну, у меня есть две переменные типа TIMER в моем коде AS3, но наступает некоторая часть моей игры, я должен уменьшить их значение.Как уменьшить временную переменную - AS3

var tempo1:Timer = new Timer(4000); 
var tParada:Timer = new Timer(2000, 1); 

Интересно, как я могу сделать, чтобы пойти декремент этих значений, начиная с внешним класса ...

Спасибо U.

+1

Какие возможности будут эти переменные, определенные в? Являются ли они переменными экземпляра? Они на временной шкале? Вы всегда можете изменить время экземпляра таймера с его свойством * .delay *, если вы можете получить доступ к этому экземпляру таймера. – Fygo

+0

Друг, она на сцене ... У меня есть доступ к ней через внешний класс ... Не могли бы вы привести пример того, как уменьшить ее время? –

+0

Если у вас есть к ним доступ, вы просто уменьшаете таймер следующим образом: tempo1.delay = 100; // 100 миллисов. То же самое с tParada. Суерте. – Fygo

ответ

1

Просто decriment задержки: каждый раз, когда таймер сработает.

var tempo1:Timer = new Timer(4000); 
tempo1.addEventListener(TimerEvent.TIMER, tick); 
var minValue:int = 1000; 

tempo1.start(); 

function tick(e:TimerEvent):void { 
    if(tempo1.delay - 100 >= minValue){ 
     tempo1.delay -= 100; 
    } 
} 

Или, если хотел ее более гладкой, вы могли бы сделать что-то вроде этого:

import flash.events.TimerEvent; 
import flash.utils.Timer; 
import fl.transitions.Tween; 
import fl.transitions.easing.*; 

var tempo1:Timer = new Timer(33); //30 times a seconds or so 
    tempo1.addEventListener(TimerEvent.TIMER, tick); 
    var curTickTime:int = 4000; 

    tempo1.start(); 

    function tick(e:TimerEvent):void { 
     if(tempo1.delay * tempo1.currentCount >= curTickTime){ 
      trace("tick"); //this should effectively be a tick 
      tempo1.reset(); 
      tempo1.start(); 

      //do whatever you do on a tick 
     } 
    } 

//tween the tick delay from the starting value to 100ms over a period of 5 seconds 
var tween:Tween = new Tween(this, "curTickTime", Strong.easeOut, curTickTime, 100, 5, true); 
Смежные вопросы