1
私はアクションスクリプト3で何かを作っています。最初のボタンbtnSkaffPenger
を押すと、クリックごとに1ずつ増加します。しかし、私の第2のボタンbtnTrePrinter
は、自動的に2秒ごとに1ずつ数字を増やすことになっていますが、一度しか動作せず、リセットされません。ボタンを使って関数内のタイマーを有効にする
btnTrePrinter.addEventListener(MouseEvent.CLICK, trePrinter);
function trePrinter(evt:MouseEvent):void
{
var timer:Timer = new Timer(2000);
var harVentet:Function = function(event:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, harVentet);
timer = null;
sumPenger++
txtSumPenger.text = sumPenger.toString();
}
timer.addEventListener(TimerEvent.TIMER, harVentet);
timer.start();
btnTrePrinter.mouseEnabled = false;
btnTrePrinter.alpha=0.4;
}
全コード:
おかげ
ボタンのコードを(私はあなたが一度だけボタンを押すことができますので、私はそれが機能リセットを妨げるとは思わない追加しました)
import flash.events.MouseEvent;
import flash.utils.Timer;
import flash.events.TimerEvent;
var sumPenger:int = 0;
btnSkaffPenger.addEventListener(MouseEvent.CLICK, penger1);
function penger1(evt:MouseEvent):void
{
sumPenger++
txtSumPenger.text = sumPenger.toString();
}
btnTrePrinter.addEventListener(MouseEvent.CLICK, trePrinter);
function trePrinter(evt:MouseEvent):void
{
var timer:Timer = new Timer(2000);
var harVentet:Function = function(event:TimerEvent):void{
timer.removeEventListener(TimerEvent.TIMER, harVentet);
timer = null;
sumPenger++
txtSumPenger.text = sumPenger.toString();
}
timer.addEventListener(TimerEvent.TIMER, harVentet);
timer.start();
btnTrePrinter.mouseEnabled = false;
btnTrePrinter.alpha=0.4;
}
このタイマーで2秒ごとに値を変更する場合は、最初の関数呼び出し後にタイマーを強制終了するのはなぜですか?以下のコードを削除してください: 'timer.removeEventListener(TimerEvent.TIMER、harVentet); timer = null; 'となり、タイマーは期待どおりに動作します。 – Nbooo
うわー、今、愚かな感じ。 本当にありがとう、私は真剣に見つけていないでしょう! <3 –
助けてくれてうれしい! – Nbooo