Flexハンズオンセミナー

今日、Flexユーザー会のActionScript3とFlex Builder3の勉強会に参加した。
各自ノートPCを持ち寄って、それぞれインストールしたAdobe Flash CS4とAdobe Flex Builder3を使ってハンズオン形式で学んでいくという内容である。
自分はMacBookを持って参加した。

ActionScript3超入門編

これを扱うために、Adobe Flash CS4が要るらしい。このセミナーに参加するために予め体験版をインストールしておいた。
超入門なので、Adobe FlashFlashアニメなどを作るツール)で簡単な図形の作り方と動かし方を実演形式で教わった後、ActionScript3を使い、Hello Worldのような初歩的なプログラムを組んだ。
使った感じは、JavaScriptかGroovyにとてもよく似ていた。メインルーチンをmain関数ではなく関数の外に記述したり、その合間にサブルーチンを記述したり、varで変数を宣言(弱い型定義)できたり、ドットシンタックスで文字列型変数にメソッドを付けて文字列の長さを取得したりとか。
参照されなくなった変数のメモリ領域がガッベージコレクションで解放されるのはJavaPerlなどと一緒。
そして、Objectクラスに後付けでフィールドを追加できるという自由度が特徴的だった。
ただ、弱い型宣言をしたり、文字列と数値を連結する際に数値を文字列に自動で変換させたりすると処理が重くなったり、使わない変数を参照したままにするとメモリ容量が足りなくなったりして、結果的に処理に支障をきたすため、強い型宣言をしたり、数値を文字列に連結する前に文字列に変換する処理を入れたり、使わない変数を参照させなくする処理を入れたほうが結果的に動作が良くなるというのは、プログラマーに親切なのかそうでないのか微妙な所だと思う。
まだまだ改良されていくような感じがする。
ちなみに、ActionScriptは、Flex Builderでも使う。

Flex Builder3超入門編

Flashを使ったRIAを制作するためのツールらしい。
以前から企業のホームページでよく見かけるFlashてんこもりのインタラクティブなメニューなどが作れるとイメージしてもいいだろうか。
GUIEclipseをベースとした統合開発環境らしく、プロジェクトを作成し、スケルトンの中に含まれるソースをエディタで編集してデバッグ・ビルドする作業形態になる。
Eclipseの方でも対応するプラグインを入れれば、Flex Builderと同じようにFlashを使ったRIAを開発できるらしいが、プラグインが沢山入っているおかげで動作が重いらしい。
Flex BuilderがEclipseと違うのは、Java開発環境が入っていないという事。そのため、Eclipseと比べてとても軽いらしい。
Flex Builderで編集するソースコードmxml(旧macromediaxml?)という形式で、XMLで記述する。
作成するページをコンポーネントとコントロールという部品として扱い、XMLタグで囲む形で記述していく。
部品の配置方法は、コンポーネントの中にコントロールまたはコンポーネントを並べていく形となる。
GTK+やTkに触れた事があれば、割と馴染みやすいかも知れない。
また、部品の名前や属性はタグの中に属性として記述していき、ボタンのイベント時のアクションも属性として記述できる。
さらに、クリックイベントなどのアクションはActionScriptで記述するため、HTMLのタグの中にJavaScriptでイベントを記述するのに慣れていれば、似たような事をしているように見えるだろう。
ただ、ActionScriptオブジェクト指向であるのにも関わらず、mxml内でthisを使うと、部品そのものではなく、一番上のApplicationコンポーネントを指すというのは、分かりづらいと思った。部品そのものを指すには、インスタンス名を付けずにメソッドだけを書くか、インスタンス名を直接指定するしか方法は無いというのは不便かも。
それと、状態を定義するためだけのタグがあったり、移動時のアクション属性(移動時間など)を定義できるタグがあるのは、使いこなすまでが大変だろうが、使いこなせたら便利かも知れない。
使ってみた感想としては、マウスで細かな手作業(絵を描いたり、編集したり、タイムラインを弄ったり)を繰り返すよりは、ソースコードでサクサク書くだけでFlashアプリが作れてしまうのは、手先があまり器用ではない人に取っては、ありがたいのではないかと思う。