Запуск таймера при нажатии на активный объект, а не в начале фильма

Я новичок в этом ... пытаюсь запустить таймер в простой гоночной игре. У меня есть действие непосредственно на объект (автомобиль), и я хочу, чтобы таймер запускался, когда вы впервые нажимаете одну из кнопок действий на клавиатуре, вверх, вниз, влево, вправо. Сейчас он начинается, как только начинается сам фильм, даже в первой сцене. Любая помощь будет принята с благодарностью!

Код на автомобиле:

onClipEvent(load) {
speed = 0;
acceleration = 0.4;
speedDecay = 0.96;
maxSpeed = 10;
backSpeed = 1;
lap = 1;
totallaps = 3;
var fulllap:Boolean = false;

}

onClipEvent(enterFrame) {
if(Math.abs(speed) > 0.3) { 
    speed *= speedDecay;
}else {
    speed = 0;
}
if(Key.isDown(Key.UP)) {
    if (Math.abs(speed) >= maxspeed) {
        speed += acceleration;
        }
    }
if(Key.isDown(Key.DOWN)) {
    if(speed < 0.5) 
    speed = -2;
    else
    speed--;
}
    if (Math.abs(speed)> 0.5) {
    if (Key.isDown(Key.LEFT)) {
        _rotation -= 10;
     }
     if (Key.isDown(Key.RIGHT)) {
        _rotation += 10;
        }
    }
   x = Math.sin(_rotation*(Math.PI/180))*speed;
   y = Math.cos(_rotation*(Math.PI/180))*speed*-1;

   if (!_root.ground.hitTest(_x+x, _y+y, true)) {
   _x += x;
   _y += y;
   }else {
    speed -= speed*1.5;   
   }

}

onClipEvent (enterFrame) {

if (_root.checkpoint1.hitTest(this)) {
    if(fulllap){
        if(lap >= totallaps)
        _root.gotoAndPlay("end");
        ++lap;
        fulllap = false;
    }   
}
if (_root.checkpoint2.hitTest(this)) {
    fulllap = true;
}
_root.currentlap = lap + "/" + totallaps;

seconds = Math.floor(getTimer()/1000);
minutes = Math.floor(seconds/60);
tens = Math.round((getTimer()-seconds*1000)/10);

if(minutes < 10) {
    minutes = "0" + minutes;
}
if (seconds < 10) {
    seconds = "0" + seconds;
}
if (tens < 10 ) {
    tens = "0" + tens;
}

_root.totaltime = minutes + "." + seconds + "." + tens;
}

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


person Michael Payne    schedule 11.08.2013    source источник
comment
Где бит, запускающий таймер?   -  person putvande    schedule 11.08.2013


Ответы (1)


Используйте события mouseDown для замены enterFrame событий, поскольку функция onClipEvent контролируется переданным в него именем:

 onClipEvent(mouseDown) {
 ...
 }

 onClipEvent(mouseDown) {
 ...
 }
person Community    schedule 27.08.2013