2008年12月アーカイブ

AIRアプリでは、ユーザの設定を記憶するために、アプリケーション記憶領域ディレクトリ(File.applicationStorageDirectory)へファイルを書き込むことがあります。

デバッグ時に、設定値が正しく書き込めたかどうか確認するために、このディレクトリを確認することが多いのですが、不慣れなOSだと・・・どこだっけ?となってしまいます。。。

ので、以下にOS毎のアプリケーション記憶領域ディレクトリをメモ書きしておきました。

  • Windows・・・%Documents and Settings%\ユーザ名\Application Data\アプリケーション ID.発行者 ID\Local Store
  • Macintosh・・・/Users/ユーザ名/Library/Preferences/アプリケーション ID.発行者 ID/Local Store
  • Linux・・・/home/ユーザ名/.appdata/applicationID発行者 ID/Local Store

詳しくは、Adobeさんのヘルプにあります。

[AIR] ウィンドウの透明度

| トラックバック(0) |

これまでに述べていたLinuxでのウィンドウの透明度については、前述したAdobeさんの公式ヘルプに詳しく書かれておりましたので、AIR1.5開発者は、ご一読された方がよさそうです。

[HTML および Ajax での Adobe AIR 1.5 アプリケーションの開発]
    - ウィンドウ、画面、メニューおよびタスクバー
        - ネイティブウィンドウの操作
            - AIR ウィンドウの基礎
                - ウィンドウの透明度

重要そうなところだけ要約すると、以下のようになります。

  • WinやMacでは、常に透明度をサポートするが、Linuxでは、その限りではない
  • 透明度が使用可能かどうかはNativeWindow.supportsTransparencyでチェックできる
  • 透明度をサポートしない場合には、透明領域は不透明の黒で描画される
  • LinuxでもCompiz(こんぴず)などの合成ウィンドウマネージャなどの視覚効果の設定が有効であれば透明度を利用できる

いくら見栄えの良い非矩形ウィンドウであっても、環境によって真っ黒に表示されてしまうとなると、せっかくのアプリの価値も下がってしまいます。ですので、この点については、必ず留意しないといけないですね。

「Flex での Adobe AIR 1.5 アプリケーションの開発ドキュメント」(オンラインヘルプ)のURLは、こちら(http://help.adobe.com/ja_JP/AIR/1.5/devappsflex/にありました。

「インストール方法」~「アプリケーションの配布とアップデート方法」まで、丁寧かつ詳細まで、すべて網羅されています。これからAIRを始める方には、大変良いリソースだと思います。
以前紹介した Tour de Flexという最強のAIRサンプルアプリとあわせて読み進めるのが、一番良い勉強方法だと思います。

※このURLにたどり着くまでが大変だったので、今更ですが載せておきました。

akihiro kamijo先生のブログ記事(2008/12/18)

>OS に依存しない AIR アプリケーションを
>開発するためのベストプラクティスが
> US のサイトに公開されています
>Developing cross-platform Adobe AIR applications

と書かれていましたので読んでみました。

手短に要約すると、以下のようになります。

AIRアプリケーションは、AIRランタイムが動作する(Win/Mac/Linux)環境で実行できるが、OSにより、サポートする機能が異なるため、それらの機能が使えるかどうか確認してから実行するような処理が必要とのこと。このとき、Capabilities.osでOS判定するのでなく、各機能毎に用意されているサポートしているかどうかを保持しているプロパティを確認するのがポイントです。

例えば、Weather Report AIRでもやってしまったのですが、どのOSでもNativeWindowの透過をサポートする訳ではないので、NativeWindow.supportsTransparencyプロパティ(true/false)をチェックして、処理を分けるなどしないといけません。さもないと、透過をサポートしない環境で、透過領域が真っ黒に表示される結果となってしまいます。

他にも、以下のプロパティについてもコメントされていました。

  • NativeApplication.supportsDockIcon(アプリケーションドックアイコン)
  • NativeApplication.supportsMenu(グローバルアプリケーションメニューバー)
  • NativeApplication.supportsSystemTrayIcon(システムトレイアイコン)
  • NativeWindow.supportsMenu(ネイティブのウィンドウメニュー)
  • NativeWindow.supportsTransparency(透明なピクセルが指定されたネイティブウィンドウ)
  • File.applicationDirectory(インストールされたアプリフォルダ)
  • File.desktopDirectory(ユーザーのデスクトップディレクトリ)
  • File.documentsDirectory(ユーザーのドキュメントディレクトリ)
  • File.userDirectory(ユーザーのディレクトリ)
  • File.separator(パスの区切り文字)
  • File.getRootDirectories(ファイルシステムのルートディレクトリ)
  • File.lineEnding(行終了文字)

アプリ/ネイティブウィンドウ/ファイルなど、OSに近い機能を使用されている方は、原文を御一読されると、きっと役に立つと思います。

Android Open Source ProjectのWebページに「"cupcake" development brach」という記事が公開されたようです。

以下、変更点の抜粋(直訳)です。

  • アプリケーション(Applications)
    • マルチメディアメッセージングサービス(MMS)・・・添付ファイル保存、不具合修正
    • 電子メール(Email)・・・不具合修正
    • アラーム時計(Alarm Clock)・・・不具合修正
    • パッケージインストーラ(Package Installer)・・・不具合修正
    • 設定(Settings)・・・メニューオプション(動作プロセスリスト)追加
    • 音楽(Music)・・・電話から復帰後の再生フェード、サードパーティ用のメディア検索
    • ブラウザ(Browser)・・・WebKitの更新、SquirrelFish(JS)サポート、コピペサポート、テキスト検索
    • 音声ダイヤル(VoiceDialer)・・・'open app'コマンドサポート
    • カメラ/ギャラリー(Camera/Gallery)・・・ビデオ録画、共有、サムネイル、ローカルファイル再生
  • ダウンロードマネージャー(Download manager)・・・HTTP301,302,303,307,503コードサポート、ダウンロードレジューム、一時停止、リトライ
  • フレームワーク(Framework)・・・新機能(略)、不具合修正
  • Bluetooth・・・A2DP & AVRCPプロファイルサポート
  • システムソフトウェア(System software)・・・Linux2.6.27カーネル、wakelock API改善、Work to transition to the USB Gadget Framework underway、x86サポート
  • ラジオ&電話通信(Radio & Telephony)・・・SIMアプリケーションツールキット1.0、その他新機能、不具合修正
  • 開発ツール(Development tools)・・・アドオンによるAndroid SDKを拡張するサードパーティ用のハンドセット
  • ビルドシステム(Build System)・・・新機能(略)

Adobe AIR1.5の公式なリリースノートは、こちらから参照できるようです。

AIR1.5を正式にサポートしているディストリビューションは、

  • Fedora 8
  • Ubuntu 7.10
  • openSUSE 10.3

とのことで、重要なところでは、シームレスインストールには、Flash 10.0.15.3以降が必要だということです。

試しに、Ubuntu 8.10(FireFox 3.0.3)でWeather Report AIRのページを参照してみると、Flash 10.0.15.3がインストールされていないため、シームレスインストール用のインストールバッジ(INSTALL NOWアイコン)が表示されませんでした。。。

Flash 10.0.15.3(.deb for Ubuntu 8.04+)をインストール後、再度Weather Report AIRのページを参照してみると、今度は無事インストールバッジが表示され、シームレスインストール(AIRランタイムとアプリを同時にインストールすること)ができました。

気になるWeather Report AIRアプリの動作ですが、下記2点を除いて、問題なく動作しました。

  • ウィンドウの透過がされていない(このアプリでは、4隅を角丸で少しだけ透過しています)
  • ウィンドウ全体をマウスダウンで移動させる実装をしていると、コンボボックスやボタン押下でも移動してしまう(こちらは、実装上の問題かもしれませんが)

それにしても、1バイナリでWin/Mac/Linuxで動作するアプリを配布できるAIRは魅力的な実行環境ですね。

[AIR] Adobe AIR 1.5 for Linux

| トラックバック(0) |

Adobe AIR1.5がLinuxにも対応したようです(2008/12/18)。
これで、Win/Mac/LinuxすべてでAIR1.5が利用可能となりましたね。

こちら(Adobeのサイト)からダウンロードできます。

天気予報情報を取得するには、お天気Webサービス仕様で定義されたURLに対してURLRequestを作成し、URLLoaderで読み込みます。

例えば、「明日の福岡県・久留米の天気」を取得する場合、Action Script 3(AS3)では、以下のように記述します。

private function hoge():void
{
    var url:String = "http://weather.livedoor.com/forecast/webservice/rest/v1" +
        "?city=113&day=tomorrow";
    var urlRequest:URLRequest = new URLRequest(url);
    var urlLoader:URLLoader = new URLLoader(urlRequest);
    
    urlLoader.addEventListener(Event.COMPLETE, onUrlLoaderComplete);
    urlLoader.load(urlRequest);
}

private function onUrlLoaderComplete(event:Event):void
{
	var urlLoader:URLLoader = event.currentTarget as URLLoader;
	var xml:XML = new XML(urlLoader.data);

	// コメントは、出力結果(参考)です
	trace(xml.title);	// "福岡県 久留米 - 明日の天気"
	trace(xml.telop);	// "晴れ"
	trace(xml.temperature.max.celsius); // "12"
	trace(xml.temperature.min.celsius);	// "2"
	trace(xml.image.url);	// "http://image.weather.livedoor.com/img/icon/1.gif"
}

URLLoaderによる読み込みが完了すると、URLLoader.dataにtextデータが格納されますので、XMLクラスのコンストラクタに渡して作成することで、XMLデータを得ることができます。

天気アイコンのURLは、xml.image.urlにありますので、mx:Image.sourceにセットすれば、天気アイコンを表示することができます。

※Weather Report AIR参照

Livedoor Weather Web Service(LWWS)を利用した天気予報表示AIRアプリケーションを公開しました。

こちらのページからダウンロードできます。

実行イメージは、こんな感じです。

wra_sample.png

 

[AIR] Flex SDK 3.2でAIR1.5開発

| トラックバック(0) |

Flex BuilderのFlexコンパイラオプションへ

-target-player=10

を追加すると、Flex SDK3.2でAIR1.5開発ができます。

※スペル(特に中間のハイフンの有無)を忘れがちで、毎回Google検索してたので、自分用に残しておきます。

12

2016年8月

  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31