2

マウスの右ボタンが押されているかどうかをチェックするブール値を作成しようとしています。マウスの左ボタンを使用するとこの方法は機能しますが、マウスの右ボタンを使用するとブール値が真のままになります。これを修正するにはどうすればよいですか。

public var mDown:Boolean = false;
public var rmDown:Boolean = false;

stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseHandler);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseHandler);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_DOWN, mouseHandler);
stage.addEventListener(MouseEvent.RIGHT_MOUSE_UP, mouseHandler);

private function mouseHandler(e:MouseEvent){
    switch(e.type){
        case MouseEvent.MOUSE_DOWN: mDown = true;
        break;
        case MouseEvent.MOUSE_UP: mDown = false;
        break;
        case MouseEvent.RIGHT_MOUSE_DOWN: rmDown = true;
        break;
        case MouseEvent.RIGHT_MOUSE_UP: rmDown = false;
    }
}

私のFlashはFlashPlayer11.2にエクスポートされます!たぶん私はRIGHT_CLICKで何かを試すことができますか?

4

1 に答える 1

3

これはプレーヤーのバージョンの問題のようです。右クリックでコンパイルしますが、11.2の実行時にサイレントに失敗します。11.4でコンパイルされ、正常に実行されます。プレーヤーのバージョンがWIN11,2,202,228であるFlashCS6でテストしたところ、報告したのとまったく同じサイレントエラーが発生しました。

次に、FlashDevelopでテストし(私のバージョンでは完了時に新しい列挙型イベント値が認識されないため、右マウスの列挙型を「rightMouseDown」と「rightMouseUp」に入れ替えます)、プロジェクターデバッガーバージョンWIN11,4,402,265と右マウスでテストしました。ダウンとアップの両方が正常に機能しました。また、Win 7マシン上の、IE、Firefox、およびChrome全体で、プラグインおよびアクティブXプレーヤーの最新の製品リリースバージョン11.4。*でも正常に機能します。

使用している開発環境がわかりません。FlashProCS*の場合、プレーヤーのバージョンをアップグレードする方法はわかりませんが、FlashBuilderまたはFlashDevelopを使用すれば簡単です。また、テストしているプレーヤーのバージョンを再確認するために使用できることはすでにご存知だと思いますflash.system.Capabilities.version。システムの.swfファイルの関連付けが通常11.4デバッガーである場合、CS6がまだ11.2を使用していることに驚きました。

于 2012-08-31T12:41:34.197 に答える