デバイスによって処理を変えるのは、出来るだけ「コードでデバイスの判定」の方法で同一コードで分岐させた方が良い。

とはいえ、ANEを利用する場合など、それが無理ならパブリッシュの設定で実際に書き出されるコードを切り替えることが出来る。

pb_profile.png

パブリッシュ設定からプロファイルの横の歯車アイコンで、プロファイルを必要なデバイスの数だけ複製して名前をつける。 たとえば「iOS」「Android」「Web」などである。

それぞれターゲットを「Air for iOS」「Air for Android」「Flash Player」などにしておくと今後プロファイルを切り替えるだけでターゲットやその他の設定が切り替えられる

つぎに「AcrionScript編集 3.0の詳細設定」で条件付きコンパイル定数を定義する。 たとえば、

CONFIG::NJF_ANDROID true
CONFIG::NJF_WEB false

と定義したとする。

compile_const.png

こうすると、スクリプトで

CONFIG::NJF_WEB {
	trace("web!");
}
CONFIG::NJF_ANDROID {
	trace("android!");
}

と書くと、「android!」と出力される。「trace("web!")」の方はパブリッシュされたswfから完全に取り除かれている。 つまりC系言語のマクロのような物である。

この方法で作成したプロファイル毎に条件付きコンパイル定数を定義すれば、各デバイス毎に処理を変えることが出来る。

条件付きコンパイル定数によるブロックはかなり自由に設定でき、括弧を省略すると直後の定義に対して適用される。たとえば以下のように書く事も出来る。

CONFIG::NJF_WEB
public function test():void{
	trace("web!");
}

CONFIG::NJF_ANDROID
public function test():void{
	trace("android!");
}

上と同じ設定の下では、test関数の実行結果は「android!」である。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 497, today: 2, yesterday: 1
初版日時: 2015-05-27 (水) 00:09:49
最終更新: 2015-05-27 (水) 00:32:05 (JST) (930d) by njf
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失


NJF