[AIR] Dot3D - ドット絵エディター3Dバージョン
Tags: AIR

ドット絵エディターの3Dバージョン!!好きな角度に回転して画像保存(デスクトップにPNG形式で保存)できるのでドット絵マニアは使うといいね!今のところ16×16区画のみ。
追記 2008/09/25
背景(カラー)の表示・非表示機能を追加。ちょっとだけキャンバスを小さくした(500 -> 480 px)
[AIR] AirUpdaterUI.mxml
Tags: AIR

なかなかシステマティックに完成したのでパッケージで公開。セールスポイントはAdobe AIR Update Frameworkの1/10以下のファイルサイズに収まっていること。あと今っぽくAjaxアニメーションで待ち時間を表示すること。AjaxローディングアイコンはAjaxload - Ajax loading gif generatorで作成した。暇なときにでも表示アイコンを増やそうと思う。
AIRアプリケーションのオートアップデートライブラリ(AirUpdater.as)にAjaxローディングアイコンを表示するUI(AirUpdaterUI.mxml)を組み込んだパッケージで以下の機能と利便性があります。
- AIRアプリケーションからそのアプリケーションの最新バージョンの有無をチェック
- 最新バージョンがあるようならその場でファイルをダウンロード、アップデートを行う(アプリケーションの上書き)。
- アップデート情報確認中、および実際のアップデート中にAjaxローディングアイコン(計8種類、選択可能)の表示
- アップデート情報のキャッシュを有効にすることでサーバーに負担をかけない設定が可能。
- 設定ActionScriptコマンドはわずか2行。
- わずか32kbと軽量 (Adobe AIR Update Frameworkは350kb)。
[AIR] Adobe AIR Update Framework
Tags: AIR
Adobe Labsが提供しているAIRアプリケーションの自動更新機能と専用のUIを含んだ便利パッケージについて。実際の使用方法はAdobe AIR Update Frameworkを使ってみる - kwLogがわかりやすい。
長所
- 更新情報のキャッシュが効く。ApplicationUpdaterUI.delayというプロパティ(defaultは1日)で最新アプリケーション情報を記述したファイルへのアクセス頻度をコントロールできる(ボタン連打されても無問題)。更新状況はSharedObjectに保存されている。Macだと以下。
/Users/USERNAME/Library/Preferences/app_name/Local Store/ApplicationUpdater
- 他言語に対応したリリースノートを定義できる。以下のように更新情報を定義しておくと、言語環境に応じてアップデート詳細の表示が変わる。
<update xmlns="http://ns.adobe.com/air/framework/update/description/1.0"> <version>2.0</version> <url>http://example.com/app_name.air</url> <description> <!–Release notes–> <text xml:lang="en"> <![CDATA[ English description is here. ]]> </text> <text xml:lang="ja"> <![CDATA[ 日本語の更新情報はこちら。 ]]> </text> </description> </update>
- Adobeが提供しているだけあって見た目がAIR(のインストーラー)っぽい。
短所
- UIのファイルサイズが結構でかい(~350kb)。元々ファイルサイズ2Mのアプリケーションなら気にならないかもしれないけど、550kbのアプリケーションが自動更新機能付けて900kbになるのは結構萎える。UI無しの選択肢もあることはある。
- ダウンロードした最新版アプリケーションが上記SharedObject保存先に居座りっぱなし。
結論
導入する/しないのcriteriaは元のアプリケーションファイルサイズかなあ。UIにこだわらず作る気があれば完全に自作でもよいと思う。他言語対応は便利かも。
[AIR] SimpleLoggerアップデート
- mxパッケージ専用のクライアントSimpleLoggerMx.asを追加。
- オートアップデート機能を追加。
Alertのデザイン変更ではまった。どうもAlert内部のボタンのデザインはAlertのプロパティbuttonStyleNameを変更してやらないといけないらしい(デフォルトはbuttonStyleName=”alertButtonStyle”)。上記の場合だと
/* alert_desin.css */
Alert{
buttonStyleName: "alertButton";
fontWeight: normal;
color: #FFFFFF;
backgroundColor: #101010;
borderStyle: solid;
cornerRadius: 4;
}
.alertButton{
textRollOverColor: #00FF00;
color: #FFFFFF;
themeColor: #00FF00;
fillColors: #101010, #101010;
borderColor : #101010;
highlightAlphas: 0.0, 0.0;
cornerRadius: 4;
fontWeight: normal;
}
という設定にしてやってmxmlに埋め込んである。
<mx:Style source="alert_design.css" />
コンポーネントのCSSデザインはadobe - Flex 2 Style Explorerを使った。コンポーネントのデザインを動的に変更でき、変更したスタイル情報がその場にCSSとして表示されるので便利。
[AIR] AIR用オートアップデートライブラリ
Tags: ActionScript, AIR
追記 2008/09/13
もう少し読みやすい文章(図付き)はこちら
追記 2008/09/16
すでにAdobe AIR Update Framework なんてものがあるじゃないか。。。仕組み的には同じっぽいのでまあ安心した。使い方は自動Update part2 (shin1)が詳しいのかな。
追記 2008/09/17
[AIR] Adobe AIR Update Frameworkを使ってみた - blog Boreal Kiss
___________________________
AIRアプリケーションのアップデート機能は汎用性が高いと思われたので専用のActionScriptライブラリを作った。このライブラリは、(このライブラリをインポート済みの)古いAIRアプリケーションから最新バージョン情報の有無をチェックして、もし最新バージョンがあるようならその場でアップデートを行う。ライブラリ以外に必要なのは以下の2ファイルで、それぞれweb上にアップロードしてあることが前提。
- アプリケーションの最新バージョン
- アプリケーション最新バージョンの設置先URLとそのバージョン情報を記述したXMLファイル
以下では上記の準備(1, 2)を行ってからライブラリの使い方(3)について説明している。
1. アプリケーション最新バージョンを作る
例えば最新バージョンのアプリケーション(latest_app.air, バージョン2.0と仮定)を以下のURLにアップロードしたと仮定。
http://example.com/latest_app.air
2. 最新バージョンチェック用のXMLファイルを作る
最新アプリケーションバージョンとそのファイル設置場所に関する情報を記述した以下のようなXMLファイル(update.xml)
<?xml version="1.0" encoding="UTF-8"?> <application> <version>2.0</version> <download_url>http://example.com/latest_app.air</download_url> </application>
を以下のURLにアップロードしたと仮定。
http://example.com/update.xml
3. ライブラリを使う
- ライブラリのダウンロード
- 古いAIRアプリケーション(例としてバージョン1.0)内にインポートしてAirUpdaterのインスタンスを作成。
import com.borealkiss.fl.utils.AirUpdater; var updater:AirUpdater; updater = AirUpdater.getInstance("1.0", "http://example.com/update.xml", "version", "download_url");
- 上記引数は全てStringで一番前から順番に、(1)現在のアプリケーションバージョン、(2)バージョンチェック用XMLファイルのURL、(3)XMLファイル中の最新バージョンを記述しているノード名(<version>)、(4)XMLファイル中の最新バージョンのURLを記述しているノード名(<download_url>)、となっている。バージョンチェック用XMLファイル内のノード名は好き勝手つけれるが、必ずgetInstance()の引数名と一致させる必要がある。
- AirUpdater.check()でバージョンチェック開始。update.xmlの内容を解析して、現在のバージョンとXMLファイルに記述されたバージョンの数値の大小を比較して、(1)最新バージョンがある、(2)最新バージョンはない、(3)送信エラー(アクセス先URLにXMLファイルがない等)、の3通りの場合に対してイベントを返す。それぞれにイベントリスナーを設置。
updater.check(); //最新バージョンが存在する updater.addEventListener(AirUpdater.LATEST_VERSION_FOUND,onFound); //最新バージョンは存在しない(現在のものが最新) updater.addEventListener(AirUpdater.LATEST_VERSION_NOT_FOUND,onFound); //通信エラー updater.addEventListener(IOErrorEvent.IO_ERROR,onFound);
- あとは最新バージョンがある場合はAirUpdater.downloadUpdate()を行う。これで最新バージョンのアプリケーションをデスクトップにダウンロードし、現在立ち上げているアプリケーションを最新バージョンに書き換える。
private function onFound(e:Event):void{ switch(e.type){ case AirUpdater.LATEST_VERSION_FOUND: updater.downloadUpdate(); break; case AirUpdater.LATEST_VERSION_NOT_FOUND: trace("No newer version found"); break; default: trace("Error"); } }
その他注意点
- 単純に数値の大きいものを最新バージョンと見なす。例えば上記の例の場合、1.0より2.0の方が最新ということになる。AirUpdaterに渡すバージョン情報とXMLファイル中のバージョン情報に数値以外が入っていると解析不能(例えばv2.5)。
- アプリケーションの実際のバージョン情報を参照するわけではない。AirUpdaterに渡すバージョン数値とXMLファイル中のバージョン数値の大小を比較してアップデートを行う。
- 最新バージョンをリリースするたびにバージョンチェック用のXMLファイルも修正する必要がある。
- 同じアプリケーションID同士でないとアップデートできない。



