Archive for August, 2007
H.264/HE-AAC support in Flash Player 9
Flash Playerが次期アップデートでiPodや次世代DVDなどで採用されているH.264コーデックに対応するようです。
Adobe Labs: Flash Player
Flash Player 9 の H.264/HE-AAC サポートについて
FLVファイルだけでなく一般的なMPEG-4ファイルもそのまま再生可能。AIRアプリケーションでも利用可能。エンコーダはPlayerのリリースに合わせてアップデート予定とのこと。
Adobeさん、最近ツボをおさえたアップデートをしてきますね。
Adobe AIR update for Flash CS3 Professional
Flash CS3からAIRアプリケーションを作成できるアップデートがAdobe Labsに公開されました。
日本語版も公開されています。
Adobe AIR update for Flash CS3 Professional
早速インストールしてみました。
Flash CS3の外部エディタとしてのFlex Builder 2
Flash CS3のActionScriptエディタは、Flash8と比較すれば使い勝手は向上していますが、Flex Buider 2のコード補完やリアルタイムのエラーチェックといった機能を経験してしまうと不便さを感じてしまいます。
ただし、現状ではFlex Builder 3 betaも含めて、Flex Builderは単体でテストやコンパイルまで完結できることを前提としているために、単純にCS3の外部エディタとして利用したい場合には、とっつきにくかったり、オーバースペックな部分があったりします。
Adobeからも今後そのようなユーザーをターゲットにした製品が発売される可能性もありますが、現状、Flex Builder 2をFlash CS3の外部エディタとして利用するための設定やTIPSをご紹介します。
汎用Documentクラス(Stageの参照)
ドキュメントクラス用の汎用クラスを公開しました。
AS3では、Stageについての仕様が変更され、
Stage.scaleMode = “noScale”;
のように静的クラスに直接アクセスすることはできなくなりました。
Stageのプロパティやメソッドにアクセスするには、
mc.stage.scaleMode = “noScale”;
のように、ステージ上に配置されたDisplayObject(MovieClipやSpriteなど)のstageプロパティからアクセスする必要があります。
ただし、stageが参照できるのはあくまでステージ上に配置されている時のみで、そのDisplayObjectがStage上にaddChildされる前、またはremoveChildされた後では、stageプロパティはnullとなってしまいます。
タイミングを気にせずにStageを参照する方法としては、はじめからステージ上に配置されているドキュメントクラスのstageプロパティを参照する方法が考えられますが、この方法でも別のSWFファイルに外部ファイルとしてロードされた場合に、ロードが完了するまでstageプロパティがnullになるという問題があり、汎用的とは言えません。
これらの問題に対処するために、ドキュメントクラス用の抽象クラスを作成しました。
ドキュメントクラスにこのDocumentクラスを継承させるだけで、ドキュメントクラスのコンストラクタを含むどこからでも、
Document.scaleMode = StageScaleMode.NO_SCALE;
Document.align = StageAlign.TOP_LEFT;
Document.addEventListener(Event.RESIZE, onResize);
Document.addEventListener(KeyboardEvent.KEY_DOWN, onKeyboadDown);
Document.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDown);
のように、Stageプロパティを設定・取得したり、Stageイベントを受け取ることができます。
基本的な仕組みとしては、stageプロパティに橋渡しをするだけですが、addToStageされる前(stageがnullの間)に設定されたプロパティやイベントリスナーを一時的にスタックしておき、addToStageされたタイミングでスタックされたプロパティやイベントリスナーを設定します。
スタックが発生するのは外部ファイルとしてロードされた時だけだと思われますが、そのような場合も含めて、コンストラクタだろうとタイミングを気にせずに使えます。
Stageイベントだけでなく、KeyイベントやMouseイベントもAS3では静的クラスにはアクセスできないので有効に使える場面は多いのではないかと思います。
シンプルなTweenクラス
AS3用のシンプルなTweenクラスを公開しました。
よく使われていると思われる他のTweenクラスとの簡単な比較は以下の通り。
fl.transitions.Tween > パラメータはひとつだけ
org.as3s.Tween > 複数パラメータを設定可
Tweener > 多機能だが、その分ファイルが大きい。作法が独特。
org.as3s.Tween > 最低限の機能だけで軽い。標準のイベントモデルに準拠。
TweenLite > Tweenerよりも軽い。作法が独特。
org.as3s.Tween > さらに軽い。標準のイベントモデルに準拠。
機能としては、標準のfl.motion.easingパッケージに含まれるEasing関数の他、カスタム関数も利用できます。
一時停止/再開が可能。
不具合などあるかもしれませんが、適宜改変してください。
余裕があればシンプルさを損なわない範囲で改良するかもしれません。