プロジェクトにリスナーを追加し、EVENT.ACTIVATE
Altキーを押しながらプロジェクトに戻ると、2回トリガーされます。
編集:shaunhusainと私は問題の原因を見つけたようですが、解決策はありません。スタンドアロンプレーヤーバージョン11以降を実行すると、イベントが2回トリガーされます。スタンドアロンプレーヤーバージョン<11またはブラウザの任意のバージョンを実行すると、1xがトリガーされます。そのため、最近のバージョンのフラッシュプレーヤープロジェクターにはバグがあるようです。正確なバージョンを特定し、それをadobeに報告して、何が起こるかを確認します。これを読んで助けようとした人に感謝します!!
フォーカスを変更するたびに起動したいのですが、フォーカスを変更するたびに2回起動したくないだけです。
どうしてこれなの?私は何か間違ったことをしていますか?この動作を防ぐための最良の方法は何ですか?
よくある質問のようですが、Googleは何もしませんでした。
コード:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
stage.addEventListener(Event.ACTIVATE, test);
}
private function test(e:Event):void
{
trace(e.target);
}
}
}
実結果:
[object Stage]
[object Stage]
望ましい結果:
[object Stage]
リスナーをステージに追加しても、他の何かに追加しても、違いはないようです。動作は同じです。
同じことがEVENT.DEACTIVATEでも起こります。マウスアップなどの他の機能は正常に機能します。
私の目標は、ゲームを一時停止し、一時停止EVENT.DEACTIVATE
を解除することEVENT.ACTIVATE
です。問題は、イベントが2回発生すると、一時停止解除関数が2回呼び出され、望ましくない結果が生じることです。