2011-07-22 17 views
0

ムービークリップを点滅させようとしています。何かに当たったときに点滅し、game.iの効果を作り出します。ヒットしたときにヒットテストがあります。オブジェクトのキャッチされた機能は、それを停止させ、タイマーに基づいて点滅を開始します。私のタイマーは、新しいタイマー(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(); 
    } 

答えて

1

まず、私はあなたがたときにタイマーが起動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; 

を単に各タイマティックの表示を切り替えるには。

+1

また、AS3では100として動作しますが、アルファ値の範囲は0-1です。 – Allan

+0

気楽なアラン、私は適切な範囲を反映するために投稿を編集しました。 –

0
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; 
} 

Mr.Allan、変更しました。

+1

数値を比較することは絶対にお勧めしません。浮動小数点エラーは、アルファ値が0.00000001のようなものになり、等価チェックに失敗します。あまり0と1の数字ではなく、アルファを0.6に設定して、アルファ値をトレースすると、0.59765625のようなものになります。 – Allan

+0

@allan:ありがとう、私は私のコーディングを変更しました。 – Benny

関連する問題