Adobe AIR開発環境構築
SDKインストール
先ずは
#yaourt -S adobe-air
としました。
パッケージ:adobe-air-sdkが依存関係にあるので、これで勝手にSDKもインストールされます。
SDKを二丁用意した後は、そこら辺に転がってるHello World!のソースをコピペしてお試ししてみました。
今回参照させていただいたのは
http://d.hatena.ne.jp/gtaka555/20081203/p1
です。
上記の参考リンクにしたがってHelloWorld-app.xmlとHelloWorld.mxmlを作成した後に
で、Flexのコンパイル。
ご覧の通り、amxmlcコマンドへのパスは通していません。
気が向いたらそのうちやるかもしれません。
では、準備のできたところでAIRのRTEで実行!
ところが
Error loading the runtime (libgtk-x11-2.0.so.0: wrong ELF class: ELFCLASS64)
えー、マジですか。
ELFCLASS64でググってみたところ、64bitのCPUで32bit用のライブラリ呼んでるとか、何かそれ系っぽい感じが。
(ウチの子のCPUのアーキテクチャはAMD64です)
そこで試しに
#yaourt -S bin32-adobe-air
してみて、Arch64対応させた32bit版AIRのRTEのインストールをし、その依存関係にあるlib32のパッケージを入れてみました。
で、改めて
すると
Error loading the runtime (libxml2.so.2: wrong ELF class: ELFCLASS64)
お、エラーメッセージが変わった。
さっきはlibgtk-x11-2.0.so.0に問題アリと出ていたところが、今度はlibxml2.so.2がマズいとのこと。
そこで今度は
#yaourt -S lib32-libxml2
で、lib32のlibxml2をインストール。
今度こそ!
成功!!
HelloWorldというテキストの表示されたウィンドウが出てきました。
後で思ったのですが、bin32-adobe-airの依存関係にあるlib32のパッケージを全部入れるようなマネしなくても、lib32-gtkだけ入れれば良かったんじゃないだろうか…。
ま、別にいいやってことで。
さて、お次はHTML + JSベースでAIRアプリが動くか試してみるコーナーです。
今度は
http://help.adobe.com/ja_JP/AIR/1.1/devappshtml/WS5b3ccc516d4fbf351e63e3d118666ade46-7ecc.html
を参考に、HelloWorld-app.xmlとHelloWorld.mxmlを作成しました。
で、adlコマンドで実行してみたところ
Error: HTMLLoader failed to initialize
at flash.html::HTMLLoader/initHTMLEngine()
at flash.html::HTMLLoader()
Application crashed with an unhandled SIGSEGV
Crashlog has been dumped in /tmp/airCrashLogs/0505_0003_qT4lFr
うわ、SIGSEGVって…。
コイツへの対処方法は分からなかったので、とりあえずは放置で。
emacsの設定
actionscript-modeを追加しました。
ASを書くには、これの他にas3-modeっていうのがあって、そっちの方が高機能らしいです。
とりあえず導入のイージーなactionscript-modeを入れてみました。
まずは適当にググって、acrionscript-mode.elをDLしてきました。
最初、yaourtで入れようと思ったのですが、レポジトリには上がっていなかったので。
yaourtでパッケージ管理できないとなると、/usr/share/emacs/site-lispの下に置くのもどうかと思ったので、ホームの下に設置することにしました。
$cd
$mkdir .emacs.d
で、~/にelisp設置ようのディレクトリを作成。
人によっては、.elispとか、.site-lispっていう名前にするようですが、まあ、何でもいいでしょう。
次に、作成したディレクトリをロードパスに追加しました。
$vi .emacs
として、以下を記述しました。
(add-to-list 'load-path "~/.emacs.d")
ロードパスのListが突っ込まれている変数:load-pathに、~/.emacs.dを要素として追加するという訳です。
load-pathに要素を追加してそれをload-pathにsetqし直すっていう書き方もよく見かけますが、この方がスッキリしてるので、こっちを採用しました。
ロードパスの追加に続き、actionscript-modeをメジャーモードとして追加です。
同じく.emacsに、以下を記述しました。
(autoload 'actionscript-mode "actionscript-mode" "actionscript" t) (setq auto-mode-alist (append '(("\\.as$" . actionscript-mode)) auto-mode-alist))
さて、これで*.asファイルを開けばactionscript-modeになってくれるはずです。
emacs -nw test.as
よし、これで立派にASの編集が…
できませんでた。
インデントできないという現象に見舞われました。
ブラケット入力後のオートインデントはおろか、Tabも効かないという状態。
function is void : incf
などとほざきやがります。
どうやら、actionscript-mode.elの頭に
(eval-when-compile (require 'regexp-opt) (require 'regexp-opt) (require 'cl))
を記述しないとダメらしいです。
それ、バグじゃないか…。
さて、これでとりあえずASは無事に書けるようになりました。
mxmlもemacsで書けるようにしないとなー、と思いつつ、こっちはまだ手つかず。