Flex 勉強会に行ってきました

trick7 さん主催の 第2回:寺子屋(仮) という勉強会に参加してきました。

Flex/ActionScript について話す相手が周りにいなかったので、そういう話ができるだけでも楽しかったです。さらに、参加者も豪華で DARAO の中の人とか、F-site の中の人とか、TRICK 7 さんとか、他にも Flash 作成を業務としてる人が集まってて、ためになる話がいっぱい聞けました。

個人的な今日のテーマはデザイン業界・広告業界での Flash の位置づけを知ろう、ということだったのですが、その辺の内容もがっつり聞き出せて有意義でした。書けそうな範囲でおもしろかった話をまとめていきます。

業界動向

Flash のバージョン

ここ最近、Flash 8 を認めてくれるお客さんが増えてきた。Flash 9 はもっての他で、よほど先進的なお客さんじゃないと許してくれない。

Flash の共同開発

複数人で Flash 案件をやる場合は .fla ファイルを分けて、ActionScript で連携する。

.fla 納品の罠

.fla 納品のときは外部ファイルが嫌がられることがある。ライブラリや外部 ActionScript が使えなくて悲しい。

Flash 開発の現実

内部のスクリプトがきれいかどうかよりも開発速度が優先されるので、昔作った ActionScript の使いまわしで作っていくことが多い。

プログラマ40歳定年説ってあるけど、デザイン業界はどう?

デザイン業界は紙媒体をやってた人が職にこまりつつあるらしい。Web 業界に流れてくると、Web デザイン・UI デザインと雑誌のレイアウトは根本的に違うので、製作に回るのは厳しいのが現状。ディレクションでうまく立ち回れる人ならやっていける。

(感想) 年とったらディレクションができないと食えないのは、プログラマと一緒だなぁ。

Flash 広告の現状

紙媒体などの別メディアに Flash が連動する形の仕事がほとんど。雑誌用の原稿を渡されて、これをベースに Flash 作ってね、というケースもあるぐらい。Flash 主導の案件で企画含めてできたら楽しいけど、結局下請け...

(感想) 消費者立場から見ても、Web 限定のプロモーションはほとんどしらない。バイラルマーケティングと絡めるのが流行なんだろうけど、まだまだ未成熟か。

Apollo ってどうよ

以下、全て私見。

ローカルアプリの見た目もゴージャスでないとダメだよね、という日がきっと来る。Web だけで全部やるのは制約あるし、ちょっとクライアントの力を借りるだけで、サーバーの負荷が劇的に減るサービスも多そう。

そのときの本命は JavaScript+ブラウザではない。制約もクロスブラウザ問題も大変。IDE があって、デザイナも使えるツールがあって初めて世間の平均的な会社の人が開発できるようになる。それを満たしてるのは、現時点では .NET Framework 3.0(XAML) か Apollo だけ。

開発者業界で考えると、VB バリバリなベンダーさんは .NET にいくだろうし、Java なベンダーさんは Apollo がやりやすいんじゃないかな。

デザイン会社的には、その日がくるのを見越して Expression か Flash のノウハウを蓄えておけば、そういう時代がきたときに、そういう案件が回ってきてウハウハになるはず。

海外の Flash 動向

海外の Flash は ActionScript は使わず、タイムラインで組んでいるサイトが多い。

日本の fps は 30 がデフォルトだけど、海外では fps を 60~80 ぐらいに設定するサイトが増えつつある。fps を 60~80 にすると、モーショントゥイーンを設定したときの嬉しさが違う、らしい。

Flex は仕事で使えるのか

現状でのためになる資料は fladdict さんの、Flex2で広告系のサイトとか実装する話 という記事。Flex Builder は最強だけど、Flex SDK はうーん、という反応。

Flex でどこまで見た目をいじれるか、については Flex 2 Style Explorer でできるレベルのカスタマイズは簡単にできる。

さらに、背景画像とか背景 SWF(?) を指定すれば、それなりに見た目は変わりそう。ProgrammaticSkin を使えば、ActionScript からかなりいじれるようだけど、それじゃ、デザイナの出る幕はなくなっちゃう。

去年の Adobe MAX の資料を見ると、将来的には Illustrator や Fireworks で Flex のスキンを作れるようになるらしい。そのあたり、後日まとめたいんだけど、とりあえずは現状で参考になりそうなリンクだけのっけておく。

Flash 9 時代のデザイナと開発者の連携は?

以前 Flash CS3 で開発者とデザイナの連携・分業が簡単になりそうだ という記事を書いたけど、上の Adobe MAX 06 の資料を眺めていると、もっと面白い世界が見えてくるかもしれぬ。

ただし、現状ではデザイナと開発者の連携については、MS の Visual Studio + Expression のほうが方向性がはっきりしてるように見える。今年の Adobe MAX は日本も開催されるし、ぜひとも生で聞いてみたいところ。

その他、フレームワーク・サーバー環境など

いろいろ出てきたのでザックリと。

  • サーバ
    • Cold Fusion
      • 勉強会の本では一押し。データベースと Flex の連携はできる模様
      • でも、Cold Fusion 高い
      • Developer 版をローカルで動かす限りは無料なので、遊ぶにはいいかも
    • Red5
      • Cold Fusion と似たようなことができるオープンソース版
  • AMF がらみ
    • Flex Data Services
      • Adobe 純正。
      • 既存 Java 環境と仲良くできる
      • 高いよね
    • S2Flex
      • Seasar の人が作ってる。
      • これがあったら FDS いらないかも。
    • AMFPHP
      • PHP と仲良くできる。
      • PHP できる人が社内にいるなら、これでいいんじゃね?
  • Flash に組み込むライブラリ
    • Fuse Kit
      • ActionScript 2.0 と組み合わせると便利
      • Flash 作る人の中では、基本
      • Blur Glow とかができる。簡単に動きを実装できる
      • 最新版は重い(?)
      • ActionScript 3.0 版の開発は最近動き始めたらしい
    • CASA
      • ユーティリティ系のクラスが便利らしい
      • イベント周りが楽になる

さくーしゃさんの ActionScript 2.0 用 Framework まとめ が詳しい。

勉強会の感想

The Essential Guide to Flex 2 with ActionScript 3.0 (Essentials) を読みながら勉強する、という内容でした。

本に誤植やダウンロードできるサンプルとの不整合があったりしてちょっと悲しかったけど、Flex の概要を知る上ではお薦めできる本です。

英語だけど、写真がたくさんあって、英語をあまり読まなくても写真を見ながら、手元で試せます。たまに、どのファイルを編集していいのか迷子になるけど、そのときは英語の中からファイル名らしきものを探しだせばなんとかなりました。

ただ、ActionScript のコーディングがけっこう多くて、プログラム書く人じゃないと嬉しさは分からないかも。

個人的には、今まであまり深入りしていなかった Repeater、Bindable、DataProvider、State の正体が分かったのが収穫でした。

あと、MXML を書く上で、予想以上に Flex Builder の補完機能が便利でした。使ってて気持ちいい。さすが、Dreamweaver を作ってる会社!


以下では、勉強会で即答できなかった質問を補足しときます。

package に関数は含められる?

ExternalInterface.call なんかは、パッケージに関数が入っているいい例。パッケージに関数を含めるには、1関数につき1ソースファイルを作ることになる。

パッケージに関数を含めるならこんな感じ。

// foo.as
package{
	public function foo():void{
		// ....
	}
}

trace 中の \r \n は?

ちゃんとそのまま出力される。でも、trace の最後には自動的に \r\n が追加されるので、あまり明示的に \r や \n を使うことはなさそう。

Bindable って何

別エントリにまとめてみた。

プロパティの作り方

p322の誤植がひどかったので、正しい例を。

private _myAge:Number;

public function get myAge():Number
{
	return _myAge;
}

public function set myAge(age:Number):void
{
	_myAget = age;
}

以上、やたら長くてまとまりないけどおわり。

第3回も近々やるそうなので、顔出したいです。