クジラ飛行机の開発状況+プログラミングメモ
カテゴリー:ActionScript
私には、Adobe Flex 2 が、とても魅力的に思えました。
ベータ版を公開していた頃から、正式公開が待ち遠しくワクワクしていました。
これまで、Flash MXの頃から、新しいバージョンが出るたびに、
Flashのスクリプト言語であるActionScriptは強化されてきました。
Flex 2では、ActionScript3.0でプログラミングを行うのですが、
実行速度が10倍も速くなり、型チェックも強化され、
これまで以上に、楽しくプログラミングができるようになったのです。
Flex 2で何が嬉しいのか考えてみました。
Flex2では、ActionScriptの言語機能が強化されただけではなく、
本格的な、プログラミングの開発環境も提供されることになりました。
はっきり言って、これまでの、Flash ActionScriptの開発環境は、
「Flashのオマケ」という感じでした。
しかし、Flex2では、Javaの統合開発環境であるEclipseをFlex2向けに
チューニングした素晴らしい統合開発環境が用意されました。
便利な補完機能は当然として、コードを書いている途中の構文チェックや、
デバッグでのブレイクポイントなどなど、
プログラミング開発に嬉しい機能が満載です。
こうした機能を利用することで、快適に開発を行うことができます。
上記の開発環境(Flex Builder 2)があれば、鬼に金棒なのですが、
残念ながら無料ではありません。
しかし、嬉しいことに、コンパイラとサンプル等が
無料で配布されています。
これまで、Flashを作るのには、Adobeの販売する(少々高い)製品を
買わなければなりませんでしたが、これからは違います。
Adobeのサイトで、ユーザー登録さえすれば、無料でダウンロードして
利用することができます。
Flex2の登場は衝撃的でした。今までFlashは蚊帳の外と感じていた
プログラマーをぐっと、身近に感じるいくつもの理由があったのです。
これまで「プログラマーから見るとFlashはよく分からない世界」という
偏見がありました。確かに、FlashはWebアニメーションの
オーサリングツールなので、デザイナーのためのツールが前面に出ていて、
プログラマーとは無縁のもののように感じられました。
ところが、Flex2では、最終的にFlashファイルを生成するものの、
コンポーネントベースで、ボタンや、テキストボックスを
ペタペタとフォームに配置する(もしくは、XMLでタグを書く)だけで、
画面デザインが完了してしまうのです。
あとは、クリックしたらどうするとか、ユーザーの操作に応じた
イベントを記述していくだけで見た目の良いアプリケーションが
完成してしまうのです。
Flex2を既存の技術で似ているものと考えると、
HTMLにJavaScriptを書くのに似ています。
画面デザインを、XMLで記述し、そこに動きを加えるための
ActionScriptを書いていくことでアプリケーションを完成させます。
昨今、Ajaxが流行っている背景として、便利なライブラリで
すごいアプリケーションが簡単に構築できるというメリットが
あると思いますが、Flex2では、Ajax以上に、簡単にすごいアプリケーションが
作れるのが魅力です。
Ajaxのライブラリに相当するのが、Flexのフレームワークです。
グリッドやツリーなど、業務に使えるコンポーネントや
Flashの魅力である、MP3再生や、Flashビデオの再生などなど、
Ajax以上に魅力満載です。
従来のWindowsアプリケーションでは、ソフトをダウンロードした後、インストールしなければならず、また、セキュリティの心配もあるので、ユーザーにとって敷居が高いものになっています。
しかし、Flex2で作ったアプリケーションは、Flashをベースとしている(Flashファイルを生成する)ので、Webブラウザ上で動作します。Webページを表示さえすれば、すぐにアプリケーションを利用可能です。
Flashプラグインの普及率はかなり高いので、プラグインだからという敬遠するという方は少ないと思います。また、ほとんどのブラウザでワンクリックでインストールが完了します。
ActionScript3.0は、文法がJavaと似ていますので、
Javaプログラマーなら、簡単に習得できるようです。
私は、Javaプログラマーでも、若干、言語の習得に時間がかかるのでは
ないかと思っていたのですが、現場で実際に開発されたJavaプログラマーに
話を伺ってみると、それほど習得に時間はかからなかったとの
ことでした。
何かを作ろうと思ったとき、「作りたいものがすぐに形になること」の重要性は、開発ツールを選ぶ上で大きなポイントとなります。Flex2なら、豊富なコンポーネントを、画面上にペタペタと貼り付けて、少しのコードを書くだけで、とりあえず動くものを作ることが出来ます。
エディタやリストに加えて、グリッドやバーなど、数多くのコンポーネントを直感的に配置することができます。また、有志の手で多くのコンポーネントが日々公開されている点も見逃せません。
現時点では、Webブラウザ上で動くアプリケーションを作る上で、最も実用的なツールの1つだと言えると思います。
参考)Flex2,ActionScript3.0が優れている9の理由とAjaxとの差
http://zapanet.info/blog/item/932
*携帯電話キャリア動向まとめ
http://level0.cuppy.co.jp/2006/10/flashlite20.html
ソフトバンクのFlash Lite2.0がSharedObjectを使えないそうで、
期待していただけに致命的です。
ちょっとした設定ファイルも、サーバー側に保存する必要があるのかぁ。
■ソフトバンク
対応機種:910SH、810SH、811SH、910T、810T、811T
■AU
W43SA、W45T、W43CA、W43H、W43S、W43K、W42SA
■DoCoMo
未定
class test {
static function main()
{
var txt:TextField = _root.createTextField("txt", 100,0,0,400,400);
txt.text = "*";
var ld:LoadVars = new LoadVars();
ld.onData = function (s2) {
txt.text += ("nadesi.com~" + s2 + "\n");
//
};
ld.load("http://nadesi.com/test.txt");
var ld2:LoadVars = new LoadVars();
ld2.onData = function (s) {
txt.text += ("aoi-project=" + s + "\n");
};
ld2.load("http://aoi-project.com/test.txt");
var ld3:LoadVars = new LoadVars();
ld3.onData = function (s3) {
txt.text += ("kujira-test=" + s3 + "\n");
};
ld3.load("http://kujirahand.com/test.txt");
}
}
===
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
===
各所で置かれているAPIでは、だいたい、これが設置されているので、
APIを渡り歩くことができそうです。
せっかくActionScript2.0を使っても、配列の中身はどうしても
タイプセーフにならない。
ところが、フリーのActionScript2コンパイラのMTASCは、配列をチェックしてくれる。
===
/*# Strictly typed arrays :*/
var x : /*String*/ Array;
===
こんな感じで書くらしい。
試しに、
===
class a {
function main()
{
var b:/*String*/Array;
b = new Array();
b[0] = 30;
}
}
===
こんなん書いてみたら、無事エラー出ました。
意外と重宝しそう。
Mac 上で、vi で ActionScriptを書く時のTips
「Vim6.3」の場合は以下:
http://www.dango-itimi.com/blog/archives/2005/000738.html
Mac OSX 10.4.8 のvimは、6.2なので、ちょっと手順が違う。
(1)下記のサイトより、ActionScriptの辞書ファイルをダウンロード
http://bitmap.dyndns.org/blog/archives/001207.html
(2)下記のサイトより、ActionScriptのハイライト定義ファイルをダウンロード
http://www.vim.org/scripts/script.php?script_id=1061
(3)Vimのインストールフォルダ /usr/share/vim/vim62 を $VIM と置き換えて読んでください。
(4)辞書ファイルを、$VIMにコピー
(5)ハイライトファイルを、$VIM/syntax/にコピー
(6)$VIM/filetype.vim に以下を追記
===
au BufRead,BufNewFile *.as set filetype=actionscript
autocmd FileType actionscript :set dictionary=/usr/share/vim/vim62/actionscript.dict
===
ちなみに、上記のサイトに書りますが、
:set complete+=k
とすると、通常の単語補完
の一行を追加すればよい (k は辞書オプション)。
次の段階の準備としていくつかActionScript3のサンプルを作ってみました。
やはりコード補完機能がある、Flex2uilder2を使うのが楽。他にも、いくつかエディタを使ってみたけど、補完がないとヘルプとエディタを何度も行き来しないといけなくて疲れました。
そこで、FlexBuilder2を買おうと思って、購入ページに行くと7万円弱・・・。Flashとほぼ同じ値段かぁ。この値段だと気軽に買えないなぁという感想。しばらくは、体験版で様子を見ることにしました。
ActionScriptからJavaScriptの関数を呼んだり、その逆を呼んだりと、
↓やりとりの方法を解説したページ。
http://www.adobe.com/jp/devnet/flash/articles/external_interface_print.html
ActionScript側で、JavaScriptから呼んでも良い関数を「ExternalInterface.addCallback()」を使って登録するだけなので、非常に手軽です。(このとき、import flash.external.*;をつけるのを忘れないようにします。)
国内では、来春以降の携帯電話端末には、Flash Lite 2が搭載機種が出るだろうとの記事を読んだのですが、auのページを見たら、既にFlash Lite 2対応の端末情報が出ていました。
http://www.au.kddi.com/ezfactory/tec/spec/new_win/ezkishu.html
Flash Lite 2では、ActionScript2が使えたり、画像, オーディオ, ビデオ, XML, SWFの動的読込みをサポートしているのでJavaアプリに匹敵するアプリが作れるようになります。楽しみです。
いよいよ、私の書いたFlash ActionScriptの本が出ます!!
「ゲーム作成を通してを学習する」とActionScriptの基本的な文法から実践的なプログラミングまでを修得することができる入門書です。変数や制御文などの基本的な文法から始まってオブジェクト指向、クラスといったActionScriptの基本技術をゲームを作りながら、理解していくチュートリアル形式の入門書です。
http://book.mycom.co.jp/book/4-8399-1791-4/4-8399-1791-4.shtml

Flash ActionScript本出ます! posted from フォト蔵
やっぱり、本を書くって大変です。
身近な皆様には、アドバイスをもらったり、校正を手伝ってもらったり、
大変お世話になりました。