2011-12-24 18 views
-1

私はタイマーと時間を表示する動的なテキストフィールドを持っています。 ムービークリップが敵に当たるたびに、タイマーに4秒を追加します。現在のカウントに戻します。AS3 hittest後に(ゲーム)タイマーに秒を追加する方法は?

timer.currentCount + 4; 

は(何もしない)

timer.currentCount += 4; 

(エラー:プロパティは読み取り専用です)

右方向にアムI私は、これが機能していない理由を知っていただきたいと思い とにかく私は何を変えるべきですか?

答えて

2

他の回答に記載されているように、タイマーの経過時間を調整することはできません。あなたがしようとする可能性があるのは、がこのvarに1を加えるたびにvar elapsedTime:Number;と呼ぶ別個の変数を作成することです。ヒットテストが発生したときは、ヒットテストに4を追加するだけです。

時間を '操作する'ためにvarを使用しているため、currentCountを使用する必要はありません。更新機能でelapsedTimeを参照するだけで問題ありません。

それは次のようになります:

var timer:Timer = new Timer(1000); 
var elapsedTime:Number = 0; 

timer.addEventListener(TimerEvent.TIMER, onTimerTick); 

function onTimerTick(e:TimerEvent) : void 
{ 
    elapsedTime++; 
    updateTimerTxt(); 
} 

function onHitTest() : void 
{ 
    elapsedTime += 4; 
    updateTimerTxt(); 
} 

function updateTimerTxt() : void 
{ 
    timertxt.text = String(elapsedTime); 
} 
+0

あなたの答えをありがとう、私はそれを理解して、どのように動的なテキストフィールドに経過時間をリンクすることができます知っている:timertxt.text = String(timer.currentCount)+ elapsedTime; ? – Opoe

+1

@Opoeこれは別の質問です。私はあなたの元の質問への答えを見つけました、そしてそれを正しいものとしてマークしてください。 –

+0

@AdamHarte私はタイマーを視覚化するためにダイナミックなテキストフィールドを使用するので、なぜあなたはそれを言っているのか理解していますが、それは私の質問と関係しています。 – Opoe

0

プロパティcurrentCountは読み取り専用です。タイマーの経過時間を変更する方法はありません。タイマーを変更する必要がある場合は、タイマーを停止し、変更された間隔で新しいタイマーを作成することができます。

+0

あなたの答えをいただき、ありがとうございます。だからあなたのタイマーから秒を追加または減らしたいときは、新しいタイマーを作成する必要がありますか? – Opoe

+0

既存のタイマーの経過時間は変更できません。新しいものを作成する必要があるかどうかは、コードの全体的な設計に依存します。あなたの要件とコード構造に基づいて他の方法もあります。 – taskinoor

関連する問題