мигающий ролик с таймером - PullRequest
0 голосов
/ 22 июля 2011

я пытаюсь заставить мой мувиклип мигать, он мигает, когда на него что-то воздействует, чтобы создать эффект игры. объект остановится и начнет мигать в зависимости от времени. Мой таймер установлен на новый таймер (400); почему мой объект не мигает? мои условия кажутся правильными.

if (hit.hitTestObject(f.hit))
    f.caught();


    private function blinkingHandler(evt:TimerEvent):void
    {

        _canBlink = true;
        if (_canBlink)
        {
            this.alpha = 0;
            _canBlink = false;
            this.alpha = 100;
            trace("blinking");
        }
    }
    public function caught() : void
    {   
        _blinkTimer.start();


        //removeEventListener(Event.ENTER_FRAME, loop);

        //this.stop();
    }

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Во-первых, я предполагаю, что вы добавили прослушиватель событий для запуска вызова blinkingHandler при срабатывании таймера:

_blinkTimer.addEventListener(TimerEvent.TIMER, blinkingHandler);

Теперь, blinkingHandler, как вы разместили, он никогда не будет скрывать объект. Альфа установлена ​​в 0, но вы сразу же установите его обратно в 1 в том же вызове, так что в результате альфа не будет отображаться в 0. Вы должны установить альфа в 0, позвольте нескольким кадрам рендеринга, установите его вернуться к 1 на следующем таймере и т. д. Попробуйте это:

private function blinkingHandler(evt:TimerEvent):void
{
    if(_canBlink) this.alpha = 1;
    else this.alpha = 0;
    _canBlink = !_canBlink;
}

Вы могли бы даже сделать:

visible = !visible;

Чтобы просто переключать видимость на каждом таймере.

0 голосов
/ 22 июля 2011
var timer:Timer =  new Timer(200);
var blink:Boolean = true;
timer.start();
sq_mc.addEventListener(MouseEvent.MOUSE_OVER, onMseOvrAction);
sq_mc.addEventListener(MouseEvent.MOUSE_OUT, onMseOutAction);
function onMseOvrAction(e:MouseEvent):void{
    timer.addEventListener(TimerEvent.TIMER, timerAction);
}
function onMseOutAction(e:MouseEvent):void{
    timer.removeEventListener(TimerEvent.TIMER, timerAction);
    sq_mc.alpha = 1;
}
function timerAction(e:TimerEvent):void
{
    if (!blink){
        sq_mc.alpha = 1;
    } else{
        sq_mc.alpha = 0;
    }
    blink = !blink;
}

Мистер Аллан, я изменился.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...