Entries of flash

ApolloでTwitterクライアント作った

Twitterが面白すぎるので、とりあずApolloでTwitterのクライアントを作ってみた。
まだまだ最低限の実装。実装時間3時間。

Twitter提供のAS3ライブラリが激しくショボだったり、認証方式の関係上ダイアログがでちゃったりと不完全だけど、とりあえず用は成すので公開してみる。最低限、WEBで更新するよりは100倍便利っす。

完成度100%で作ろうとすると飽きてやめてしまうので、20%でリリース。これから一週間ぐらいポチポチ弄くって、機能強化したりスキンつけたりしてオシャレなクライアントに仕上げていこうかとおもいます。ライブに作ってく予定なので、機能要望バグ等はコメント欄かTwitterでよろしく。

Flash Player9 でのリサイズの挙動

なんか最近思うんだけど、
Flash Player(たぶん9)って、IEとFirefoxでリサイズ時の挙動が微妙に違くね?

なんか、ある一定の条件(?)を満たした状態で、
CacheAsBitmapがtrueになっているMCの_width, _heightなんか書き換えたりしちゃうと、
表示がブッ壊れませんか?

ある条件がまだよくわからないんですが、そんな感じがします。

AS3で、DIとかゲームフレームワークとか

自分が弟子入りしたい人ベスト5の1人であらせられるyossy君がついに、AS3のDIコンテナとかゲームフレームワークとか、UnitTestとかその他色々のフレームワークを大公開。
激しくお疲れ様です。

ちょうど、AS3でパーティクルエンジンを作って色々やってみたいと思ってたんだけど、そこでDIコンテナ使えないかな。ぶっちゃけDIコンテナって使ったことないんだけどね。

パーティクルを、

・移動制御クラス
・子パーティクル放出クラス、
・描画クラス

の3つに分解して、組み合わせてトッピングできるようにすれば、かなり柔軟なパーティクルエンジンができるんじゃないかと思ったのdeathよ。それ使ってflight404みたい実験を効率よく色々したかった。

アブストラクトファクトリーかデコレーターでやろうと思ってたんだけど、このDIって奴使ってもいいんだよね?多分。

AS3と組織的開発力

機能変更、お知らせなど – はてな技術発表会日記 – 3月22日の技術勉強会 – ActionScript3 / Flex / Apollo 勉強会

前々からヤバイヤバイと言っていた方向が徐々に近づいてきている。ヤバイ。
○○ラボといった研究開発チームを持つ企業が、Flash(AS3)界に参入することで勢力図がどのように変化するのか?

Webコンテンツがアプリケーション化する方向に進化しつつある現在、個人の開発力が組織的生産性に対抗することができるのか?というのは今後のFlashコンテンツ開発の大きな課題になるんじゃないかと思う。

コンテンツが大型化すればするほど、受注製作ベースの企業と、すでに収益を担保するサービスを持ち研究開発に人材をさける企業との、技術開発力の差は極端に顕著になっていく・・・と思う。

広告系のFlash業界から見ると、一般的にこのような流れは自分達と無縁のものである、と考えられている(と思う)。だが、本当にそうなのだろうか?

例えば、ミュージシャンのサイトがあったとして、そのミュージシャンの世界観を的確にあらわしたFullFlashサイトと、PV視聴~iTunesでの購入までをシームレスつないだFlex2ベースのサイトがあった場合、どちらがより効果的なプロモーションなのであろうか?

あるいは、全て0からつくり出した一点もののサイトと、アリもののフレームワークを組み合わせて作った低予算の高機能サイト。Flexで低予算で組んだサイトに、浮いた予算でゴンドリーなりカニンガムなりがDVDに作った映像を、ウェブ用に再編集してUIや遷移に搭載した場合、一般へのインパクトや訴求力はどちらが高いのか?

ツールチップやヒストリー、ユーザーカスタマイズ、キーボードなど全てに対応したサイトを0から作ることがどれだけ現実的でないかは、Flashコンテンツ開発者ならば周知のことだと思う。一方で読者参加や企画連動化サイトのアプリかはそれらを必要としているし、Flex2コンポーネントを導入すればそれらは数十~数百分の一の労力で実装できる。

今後、事例数が増え数字が明確化していくにつれ、後者が増えていくのではないだろうか。少なくとも、ボクが○通(注:ファミ通ではない)、の中の人なら絶対にそうする。

どちらにしろはっきりと言えるのは、組織的にFlashを研究開発する勢力が大量に参入してきた以上、個人が技術的な意味で最先端を突っ走ろうという時代は終わったということだ。 特にボクがAjax論文を翻訳していたころから行っていた、個人のフットワークによって

AS3での、アニメーション等のパラメータの調整方法

amaznodeの頃から色々と試行錯誤して、とりあえず一番お手軽と思った、パラメーターのデバッグ方法。 Flash9 public alphaとかはコンパイル速度が激遅だったので、調整とかかなり苦労した教訓から考た方法です。

まず適当なParamDebuggerとか、適当なクラスを作ります。クラスには、

・Mainとなるクラスインスタンスや、重要なシングルトンへの参照を持たせる。
・KeyEvent (Keyboard.SPACE) のイベントハンドラーを設ける。

で、KeyEventのイベントハンドラーにブレイクポイントを仕込みます。

こうすれば、任意のタイミングでスペースを押せば、プログラムを一時停止できます。
あとはFlex Builderの変数パネルを使って、リアルタイムにspeedとかdelayとかを、書き換えてしまえば、再起動も最コンパイルもなしで動きの調整ができるって寸法。

本当はテキストフィールド表示して、FireBugのDomInspectorみたいにクリックしたものの参照出して、パラメータ弄れるとか、テキストでパス指定できるとかあると便利なんですが、eval等がなくなったので色々と作るのは面倒そう。もっとエェ方法あったら教えてください。

というか早くXRayがAS3に正式対応して欲しい。

Flex2で広告系のサイトとか実装する話

ブッチャケ、現状はFlex2のコンポーネントで、お洒落かつゴージャスな体験とかかなりアリエナイのが実情です。重過ぎ。なんとかならんものか。

一部反応をみてると、EYE-PROJECTがFlex2コンポーネントで動いてるようなエントリを見ますが、それはまったくの誤りです。ASコーディングツールとしてのFlex2が最強なだけで、基本クラスは0からスクラッチしてます。EYE-PROJECTもスキンは全部Flashで作って、コーディング環境はFlex2って感じだったりします。

今回はやってませんげ、理想としては、データ管理だけMXフレームワークで執り行って、表示は全部Flash製みたいな場所が落としどころだと思うのだけど、MX系のフレームワークがまだよく理解できてないのです。

Flex2のパワーを保持したまま、広告系コンテンツ特有の比較的デタラメな描画や遷移をするには、

1: リストやデータグリッドを作成しStageにaddChildしないで保持する。
2: データ管理は非表示のコンポーネントで行う
2: コンポーネントの各種イベントをよこどり。
3: Skin/Viewでデータプロバイダを直読みして勝手に描画。

みたいのが暫定回答じゃないかと思うんですが、どうなんでしょうね?

ArrayCollection, XMLCollection, DataDescriptor, TreeDataDescriptor等のデータ管理系のクラスを使うと、非常に簡単に色々なUIが実装できるので、なんとか工夫したいところです。

確実にいえるのは、派手な変形アニメーション等で、中間遷移状態で、状態Aのパーツと状態Bのパーツが同時に存在するとか、そういうダイナミックな変形はFlex2のコンポーネントでは考慮されてないってこってす。なんかウマイ方法を考えないと、Flex2コンポーネントそのものの広告系コンテンツへの使用は現状まだ難しいかと。

誰か素敵な方法を考えたら、こっそり教えてください。

EYE-PROJECT BY KDDI 本ラウンチ


EYE-PROJECTのサイトが正式にランチしました。
みんなでお題動画を投稿して、動画でモザイクを作っちゃうサイトです。

コンセプチュアルなお話やバックグラウンド等は、渋谷で働く社長ブログの方に書いてあるので、fladdictではAS3のテクニカルな裏話とかを少々。

Flash, Flex2、Apolloとデザインと経済性

ちょっと仕事がひと段落したので、最近Flex2やAS3、Apollo等について思っていたことをまとめてみました。

Flex2がもたらしたものは生産性
ここ最近、ずっとAS3やFlexBuilderを触ってて思ったことです。
あと数年しないうちにWEBのインタラクションや情報のビジュアライズ等、現状は比較的Flash使いのセンスに依存していた分野が、より厳密にクリエイティブからプロダクションへとして成立していくのではないかと感じました。

確実に感じたのは、AS2と比べた場合のFlex2やAS3の圧倒的な生産性の高さです。

製作期間1日、コスト数万円のそこそこ見れるツリーマップと、製作期間1ヶ月、コスト百万円の非常に美しいツリーマップ。
生産性的に数十倍、数百倍の差の開きがあり、ボタン入力やヒストリーといった機能性ではひょっとしたら前者の方が優れているかもしれない。

Webがプリケーション化すればするほど、インタラクションやグラフィックのデザインは分業化され、スキン作業に近いものとなっていく気がします。

インタラクションの気持ちよさや美的側面、カスタム性といったものだけに、
ファッション業界のオートクチュール(一品モノ)とプレタポルテ(大量生産)のような、二軸化は避けられないのではないかと。

youtube以降で強く感じることは、大半のユーザーがネット(特に携帯)に求めているのは、フランス料理ではなくファーストフードであるということです。

コストと美的側面のバランス
あと2年以内にiTune程度サイズのアプリはウェブで動くようになるでしょう。 例えばミュージシャンのサイトにFlexによるiTune的コンポーネントが実装され、視聴から販売までシームレスにいくようになった時・・・

ボクは0からFlashでスクリプトを書いて、同レベルのサイトを同期限、同予算で作ることができるのか?

クライアントは機能性を大きく犠牲にしてまで、一点ものの美しいUIを望むのか、それともコンポーネントを導入して、浮いた予算を美しいスキンのデザインやビデオに投入するのか?

コンポーネントの数が充実して、Flex2にできることと開発コストの削減が進めば進むほど、一点モノのFlashコンテンツは不利になっていきそうな気がします。

そんな中どうすれば生き残れるんでしょうね。
うがー、スッゲェムズイ。

Apolloオライリー本クリエイティブコモンズで大放出

Adobeの新兵器Apollo、16日公開はガセだったみたいですが、
かわりにアポロのオライリー本が、クリエイティブコモンズで大放出されてるようです。
しかし、現在なんかDL不可状態。

気になるけど、当分触れなさそうな予感・・・
でもPDF入手成功した人がいたらコピーください。

Soundクラスとか基本クラスを拡張する場合のメモ

AS3dクラスの拡張メモ

playをオーバーライドして、最後に再生した時間を記録しておく。
一定時間内に連続再生しないようにすれば、ロールオーバー連打で音が壊れたりするのを防げる。

しかしSoundのような基本クラスを、気軽にオーバーライドしてしまうと他のフレームワークと組み合わせて使えなくなったり、あとでもっといい実装思いついたときに過去の資産が台無しになってしまう。