AIRNovel&ANBooks更新:デバイス回転不具合修正

●リリース Ansan_sdkAndroidChromeOSiPadiPhone全ソース
3.25
* bug:「モバイル端末回転を知らせるイベント」を予約しなくても、「config.anprjに設定した縦横幅」にリサイズし、回転関係変数をセットするよう修正。

●ANBooks更新(公開先
0.17
* chg:AIRNovel 3.25に更新
* bug:anprjを開いてからDockをクリックすると、ゲーム画面最下層レイヤに書庫が表示されるのを修正。
* bug:削除ボタンがいつからか出なくなってるのを修正。


 AIRNovelは前回の(注)の不具合修正、ANBooksは細々と修正です。
 ソース変更はan_sdkのみ、ant upd_env で更新出来ます。

AIRNovel&ANBooks更新:デバイス回転サポート

(注)今回追加した「モバイル端末回転を知らせるイベント」[event key=orientation]を予約しておくと、「config.anprjに設定した縦横幅」にリサイズします。暫定仕様です。
 イベント予約とそういう処理は分けるべきだなぁとリリースしてから気付きました……。


●ANBooks更新(公開先
0.16
* chg:AIRNovel 3.24に更新
* add:ANBooksで画面サイズ変更・回転をサポート。イベント発生、変数も設定。
    ※ただし現状[l]において回転イベントが発生しない。[s]なら発生。
     これはANBooksでのみの現象。実機やコマンドライン開発環境なら問題なし。

 Btn= はホームボタンの方向。縦長に普通に持ったときに手前、下に来る方を指す。
20120509_anb_ orientation
※回転イベントのテストデータ有り。以下は引用。

[call label=*rotate]
[event global=false call=true key=orientation label=*rotate]

ans[span layout='fontSize="18"'] -- ver
&const.flash.desktop.NativeApplication.nativeApplication.applicationDescriptor.versionNumber@str&[l][r]

[s]
*rotate
; デバイス横・縦幅(初期依存)
; &const.flash.system.Capabilities.screenResolutionX&、
; &const.flash.system.Capabilities.screenResolutionY&[r]

; デバイスによってサポートされている方向
; DLRU=
; &const.Stage.supportedOrientations.default&、
; &const.Stage.supportedOrientations.rotatedLeft&、
; &const.Stage.supportedOrientations.rotatedRight&、
; &const.Stage.supportedOrientations.upsideDown&[r]

; (現在の)ステージ横・縦幅
&const.flash.display.Stage.stageWidth&、
&const.flash.display.Stage.stageHeight&[r]
&const.Stage.deviceOrientation&、 ; デバイス方向
; &const.Stage.orientation&[r] ; ステージ方向
; &const.StageOrientationEvent.beforeOrientation&、 ; ステージ方向の前回値
; &const.StageOrientationEvent.afterOrientation&[r] ; ステージ方向と同じ値
[return]



●リリース Ansan_sdkAndroidChromeOSiPadiPhone全ソース
3.24
* chg:Android版、(ホームボタンなどで)ホームに戻っただけではアプリが終わらない仕様にした。(ホームボタン長押しで個別に終わらせる)
* add:[event]にモバイル端末回転を知らせるイベント key=orientation を追加。
* add:config.anprj に設定した画面サイズを取得する変数
    const.an.xmlConfig.window.width、〜height 追加。
* add:デバイス回転状態の変数追加。
    const.Stage.deviceOrientation ; デバイス方向(iOSでは冒頭、unknown)
    const.Stage.orientation ; ステージ方向
    const.StageOrientationEvent.beforeOrientation ; ステージ方向の前回値(初期NULL)
    const.StageOrientationEvent.afterOrientation ; ステージ方向と同じ値(初期NULL)
* add:デバイスによってサポートされている方向を調べる変数追加。値はtrueかNULL。
    const.Stage.supportedOrientations.default
    const.Stage.supportedOrientations.rotatedLeft
    const.Stage.supportedOrientations.rotatedRight
    const.Stage.supportedOrientations.upsideDown
* chg:center等で位置決定時にscaleの絶対値を画像サイズに掛ける修正。
* add:[window]で画面サイズ変更後にTrans.asのresizeCache()実行。
* chg:[let]など変数に値をセットする処理でエラー時のメッセージが分かりにくかったのを修正。例えば以下のように。
   以前:
   Error #1009: Cannot access a property or method of a null object reference.
   修正後:
   例外 mes=[変数に値セット] 変数[const.flash.display.Stage.stageWidth]は書き換え不可です


★回転とモバイル端末画面サイズ関係の変数追加。整理すると以下になる。
・const.flash.system.Capabilities.screenResolutionX、〜Y は、
   ハードウェアが表示可能な最大画面解像度を返す。回転しても不変。
   PCではモニタ、モバイルでは端末の最大表示可能ドット数。
   デバイスにより癖がある。
     iPhone……ホームボタンが下になる縦長の状態での縦横で固定。
     Android……アプリ起動直後の状態での縦横による。

・const.an.xmlConfig.window.width、〜height は、config.anprj 内のXMLに
   設定した値。回転しても不変。

・const.flash.display.Stage.stageWidth、〜stageHeight はステージ、
   すなわちアプリ表示領域のサイズ。
   回転後に縦横を考慮し const.an.xmlConfig.window.width、〜height をセットし直す。

・const.Stage.deviceOrientation はデバイス方向現わす文字列。
   const.Stage.orientation は(画像や文字を表示する)ステージの向き。
   回転後にも変化。内容は以下を参照。(標準的持ち方の方向が「default」)
     Stage - Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド

   デバイスを左に回転(反時計回りに 90度)すると、
     &const.Stage.deviceOrientation = "rotatedLeft"
   ステージはユーザーに向くよう逆方向に(時計回りに 90度)回転するので
     &const.Stage.orientation = "rotatedRight"
   ※以下が分かりやすい(要 Flash)
     Flexponential » orientation and deviceOrientation in Flex Mobile apps

   ※ただし、回転すると(<fullScreen>true</fullScreen>にて)隠してた
      通知バー(ステータスバー)が表示されてしまう不具合有り。
   ※回転はアプリケーション設定ファイルに <autoOrients>true</autoOrients>。
<前>
   <autoOrients>false</autoOrients>
   <aspectRatio>landscape</aspectRatio>
<後>
   <autoOrients>true</autoOrients>

通知バー消去(ただし回転すると表示されてしまう不具合有り。恐らくAdobe AIRに。バグ報告投げました)
   <fullScreen>true</fullScreen>

AIRNovel更新:ビルドファイルなど全面チェック・修正、setup.xml対応

●リリース Ansan_sdkAndroidChromeOSiPadiPhone全ソース
3.23
* chg:ビルドファイルなど全面チェック・修正、setup.xml対応

 ソースは変更していませんが、ビルド関係やzipに含むその他のファイルなどを修正しました。
 setup.xml を更新。

● ant -f setup.xml
 桜サンプル、ビルド環境構築&テスト実行(前記事で追加)


● ant -f setup.xml setup_product
 プラグインなども追加ダウンロード


● ant -f setup.xml setup_mobile
 モバイル(Android、iPad、iPhone、ChromeOS)環境追加DL。
 実行後、以下のコマンドで動作確認出来ます。
ant ip_do …… iPhone版のビルド&PC上実行
ant ipa_do …… iPad版のビルド&PC上実行
ant and …… Android版のビルド&PC上実行
ant ch …… ChromeOSのビルド(後はGoogle Chromeから読み込む)
ant lib …… その他ライブラリのビルド



 また、桜サンプルのビルドファイル「build.xml」にソース更新機能を付けました。
 build.xml関係や素材ファイルはノータッチ。以下にコマンドを。
ant chk_env …… 現在のAIRlibとan_sdkバージョンほか、開発環境情報を表示
ant upd_env …… AIRlibとan_sdkをネットから上書き(時間が新しいと更新しない)


 この記事に済まさず、マニュアルに書かないとー……

桜サンプルビルド環境を自動準備するApache Antファイル

 AIRNovelの「桜の樹の下には」開発環境を自動で準備するApache Antファイル setup.xml を公開しました。
 必要なモノはネットからダウンロードして環境を整えます。

 使い方などは「開発者向け情報(Antでビルドしよう)」を参考にして下さい。

 Java + Ant 環境を整え、空っぽのフォルダに setup.xml を置いて「ant -f setup.xml」すれば、しばらくすると「桜の木の下には」が起動します。
 これはアプリとは違い、 AIRNovel エンジンをビルドし、「Ant から起動」したものです。

AIRNovelのバージョン管理と環境設定など

 次バージョンから「櫻の樹の下には サンプル」の build.xml に以下を追加しようかと研究中。
 目的は「開発環境の情報表示」「今自分のPC上にあるAIRNovelソースファイルは最新かどうかを知る」事です。

<target name="chk_env">
   <echo message="== 環境"/>
   <echo message="=== OS:${os.name} ${os.version}"/>
   <echo message="=== Java VM version:${java.version}"/>
   <echo message="=== Ant version : ${ant.version}"/>
   <echo message="=== Java MXMLC version test"/>
   <java jar="${MXMLC.JAR}" fork="true" failonerror="true">
      <arg line="-version"/>
   </java>

   <echo/>
   <echo message="== AIRNovel"/>
   <property url="http://ugainovel.ddo.jp/an/open/AIRlib.properties" prefix="web"/>
   <property file="${air_usrlib}lib/com/fc2/blog38/famibee/AIRlib.properties" prefix="local"/>
   <property url="http://ugainovel.ddo.jp/an/open/an_sdk.properties" prefix="web"/>
   <property file="SDK/an_sdk/com/fc2/blog38/famibee/AIRNovel/an_sdk.properties" prefix="local"/>
   <echo message="=== local.AIRlib_ver : ${local.AIRlib_ver}"/>
   <echo message="=== onweb.AIRlib_ver : ${web.AIRlib_ver}"/>
   <echo message="=== local.an_sdk_ver : ${local.an_sdk_ver}"/>
   <echo message="=== onweb.an_sdk_ver : ${web.an_sdk_ver}"/>

   <echo/>
   <echo message="== ${app_name} アプリケーション記述ファイル"/>
   <xmlproperty file="${app_name}-app.xml"/>
   <echo message="=== xmlns : ${application(xmlns)}"/>
   <echo message="=== versionNumber : ${application.versionNumber}"/>
</target>


(Java / Ant 環境を整え)「ant chk_env」を実行すると、以下のような結果を表示します。
 赤文字部分が開発環境の情報です。(コマンドプロンプト画面、実際は赤くないです)

chk_env:
   [echo] == 環境
   [echo] === OS:Mac OS X 10.7.3
   [echo] === Java VM version:1.6.0_31
   [echo] === Ant version : Apache Ant(TM) version 1.8.2 compiled on June 3 2011
   [echo] === Java MXMLC version test
   [java] Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
   [java] Version 4.6.0 build 23201
   [echo]
   [echo] == AIRNovel
   [echo] === local.AIRlib_ver : 3.22
   [echo] === onweb.AIRlib_ver : 3.22
   [echo] === local.an_sdk_ver : 3.22
   [echo] === onweb.an_sdk_ver : 3.22
   [echo]
   [echo] == UnderCherry アプリケーション記述ファイル
   [echo] === xmlns : http://ns.adobe.com/air/application/2.6
   [echo] === versionNumber : 3.22


 上の方は開発環境の情報、この記事のポイントは真ん中辺りの「AIRNovel」部分です。
 開発PCとネット上最新のバージョン番号を視覚的に比較できます。
  local.AIRlib_ver …… (開発PCの)AIRlib バージョン
  onweb.AIRlib_ver …… (ネット上最新の)AIRlib バージョン
  local.an_sdk_ver …… (開発PCの)an_sdk バージョン
  onweb.an_sdk_ver …… (ネット上最新の)an_sdk バージョン
プロフィール

Author:ふぁみべぇ
 →メアド(四角を@に)

カテゴリ
リンク
XNovelの解説本が発売に! xnovel_manual.jpg
検索フォーム
最新記事
月別アーカイブ