1

AIRstage.mouseLockでのプロパティの設定に問題があります(3.2-3.4)

FlashPlayer (11.2-11.4) プロジェクトで次のクラスをコンパイルすると、正常に動作します。

package  
{
    import flash.display.Sprite;
    import flash.display.StageDisplayState;
    import flash.events.KeyboardEvent;

    public class Main extends Sprite 
    {
        public function Main() 
        {
            stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
        }

        private function onKeyDown(event:KeyboardEvent):void 
        {
            stage.displayState = StageDisplayState.FULL_SCREEN;
            stage.mouseLock = true;
        }
    }
}

しかし、FlashPlayer ではなく AIR を対象とする同じクラスをコンパイルしようとすると、次のエラーが発生します。

Error #1056: Cannot create property mouseLock on flash.display.Stage.

AIR SDK Version: 3.4.0.2710IDE として FlashDevelop 4.1.0 を使用しています。

EDIT : FlashDevelop をクリーン インストールした後でも、Flex SDK、AIR SDK、FlashPlayerDebugger を最初からダウンロードしても、問題は解決しません。

編集 2 : ありがとう、TheDarkIn1978。-swf-version=17正しいバージョン(3.4)を手動で使用するように編集して追加した後、機能application.xmlしました...最新のFlashDevelopまたはAIR SDK(おそらくFDにある)のバグかどうかを調べてみます...

4

1 に答える 1

1

あなたのコードは正しいので、FlashDevelop が実際に少なくともAIR SDK 3.2をターゲットにしているかどうかを確認する必要があると思います。

まず、問題のあるコードをコメントアウトし、コンストラクターでランタイム バージョンをトレースします。

trace("AIR SDK Version: ", NativeApplication.nativeApplication.runtimeVersion);

これにより、少なくとも次のように出力されます。

AIR SDK バージョン: 3.2.x.xxxx

そうでない場合は、FlashDevelop が対象としている Flex SDK (AIR を使用) を確認する必要があります。

ツール > プログラム設定 > AS3Context > 言語 > インストール済み Flex SDK

所有しているバージョンが不明な場合、または AIR SDK 3.2 より前のバージョンをターゲットにしている場合は、Adobe のゲーム サイトから最新の AIR SDK (Flex SDK と事前に統合) をダウンロードできます ( Adobe® AIR® SDK をダウンロードします)。ディスクに保存し、その場所を FlashDevelop にリンクします。

ここに画像の説明を入力

[編集]


最後に忘れていたことがあります。プロジェクトのプラットフォーム ターゲットが少なくとも AIR 3.2 に設定されていること、およびプロジェクトの AIR SDK ターゲット設定がグローバル AIR SDK ターゲット設定を上書きしていないことを確認してください。

プロジェクト > プロパティ

ここに画像の説明を入力

ここに画像の説明を入力

[編集2]


ターゲットの swf バージョンを手動でオーバーライドして、バージョン 17 に割り当ててみてください。

[プロジェクト] > [プロパティ] > [コンパイラ オプション] > [詳細設定] > [追加のコンパイラ オプション]

コンパイラ オプション配列に次を追加します。

-swf-バージョン=17

ここに画像の説明を入力

于 2012-11-02T23:05:35.163 に答える