akihiro kamijo: July 2008 Archives

« June 2008 | Main | August 2008 »

July 18, 2008

Adobe Pixel Bender Toolkit の Preview Release 4 公開

Pixel Bender の新しいバージョンが公開されました。(Pixel Bender Toolkit@Labs) 今回は Preview Release 4 です。基本的にはバグフィックスが行われたくらいで、大きな変更はありません。

Posted by ackie at 06:06 PM | Comments (0)

July 17, 2008

Flex 3.0.3 SDK 公開と今後のロードマップ

Flex 3.0.3 SDK の stable build が公開されました。(Flex 3 SDK Downloads) いくつかのバグフィックスに加え、locale/ja_JP が zip ファイルに含まれていますので、これから AIR 開発環境を設定する人にはお勧めです。Flex Builder の設定は、以前の記事 (Adobe AIR 1.1 公開です) と英文ですがテックノート (Update Flex Builder to use the Adobe AIR 1.1 SDK) をご覧ください。

今後は、AIR 1.1 に正式対応するマイルストーンリリースとして Flex 3.1 が 8 月に公開される予定です。 (3.1 がリリースされるまでの間は暫定的に 3.0.2 がサポートされるそうです)

それから、今秋には Flex 3.2 も公開が予定されています。Adobe オープンソースのサイトによると Flex 3.2 では Marshall Plan と呼ばれる新機能が追加される予定になっています。Marshall Plan は異なるバージョンの SDK で開発された SWF を 1 つのアプリケーション内で利用可能にする技術で、例えば、将来のバージョン (Gumbo ?) で作成したメインのアプリケーションに Flex 3.1 SDK で作成してあったサブアプリケーション (SWF) をロードして使うようなケースが想定されています。

Marshall Plan は Flex 3.1 以前のバージョンでは利用できないとの記述があったので AIR 1.1 サポートの件もあわせ既存 Flex アプリの 3.1 対応は検討する価値がありそうです。

Posted by ackie at 06:40 PM | Comments (0)

July 15, 2008

Gumbo (Flex SDK 次期バージョン) の発表

Gumbo はオープンソース Flex の次バージョンのコードネームです。Adobe のオープンソースサイトに最初の stable build が公開されました。(Gumbo Downloads

Gumbo の開発はまだ始まったばかりで、今回の発表も早い段階からコミュニティのフィードバックを受けられるよう行われたものです。仕様についての意見や要望 (もちろんバグも) はバグデータベース(http://bugs.adobe.com/flex/)に登録できますのでよろしくお願いします。入力内容は日本語でも大丈夫です。ちなみに、バグベースはログインしたら Profile → Preference と進んで UI を日本語に設定することが可能です。

以下の 3 つが Gumbo の開発テーマとして挙げられているものです。Flex 3 に対する要望として多かったものから選ばれたとのこと。

  • Design in Mind: デザイナーとデベロッパーの連携を容易にするフレームワーク、スキンデザインを容易にするコンポーネントアーキテクチャの提供
  • Developer Productivity: コンパイラのパフォーマンス、データバインディング機能の強化等
  • Framework Evolution: Flash Player の新しい機能 (テキストエンジン等) への対応

Gumbo の公開予定についてはまだ努力目標程度の確度と前置きされていますが 2009 年後半となっています。

Posted by ackie at 11:53 AM | Comments (0)

July 08, 2008

Flash Player 10 のローカルファイルアクセス機能 (FileReference クラス)

Flash Player 10 ではローカルファイルを直接 Flash アプリケーションに読み込んだり Flash アプリケーション内のデータを直接ローカルファイルに書き出す機能が追加されています。

Flash Player 9 でも FileReference を使ってローカルファイルにアクセスすることは可能です。が、その機能はファイルのアップロード/ダウンロードを行うためのもので、Flash アプリケーションからは、一旦サーバを経由しないとローカルファイルのデータを扱うことができませんでした。直接ファイル I/O の出来る日が来ることを心待ちにしていた方も多いことでしょう。

というわけで、Flash Player 10 では flash.net.FileReference クラスに以下の API が追加されています。

public function get data():ByteArray // 読み込まれたデータ (読み取り専用のプロパティ)
public function load():void          // 指定されたファイルの読み込み開始
public function save(data:*, name:String = null):void 
                                     // 保存先を選択するダイアログを表示、その後データ保存開始
 

ファイルの読み込みを開始するには load() メソッドを使用します。読み込むファイルの指定は、browse() メソッドを呼ぶとダイアログが表示されるので、その中でユーザが行います。

このときプログラムから読み込むファイルを指定することはできません。これは SWF がロードされたら勝手にローカルファイルを送信してしまうといった類のアタックからユーザを保護するためです。

load() は呼び出されるとすぐに戻るので、その後の進み具合はイベント経由で確認することになります。このあたりは従来の FileReference の使い方と同じです。

下は、ファイルを読み込む簡単なサンプルです。

var fr:FileReference=new FileReference();
fr.addEventListener(Event.SELECT,onSelect);
fr.browse(); // ファイル選択のダイアログを表示
 
function onSelect(e:Event):void
{
  // イベントリスナーを追加
  fr.addEventListener(ProgressEvent.PROGRESS,onProgress);
  fr.addEventListener(Event.COMPLETE,onComplete);
  // 下の 2 つはとりあえずコメントアウト
  // fr.addEventListener(Event.OPEN, onOpen);
  // fr.addEventListener(IOErrorEvent.IO_ERROR, onIoError);
  fr.load(); // 読み込み処理を開始
}
 
function onProgress(e:ProgressEvent):void
{
  trace("読み込んだバイト数:" + e.bytesLoaded + "、 全体のバイト数:" + e.bytesTotal);
}
function onComplete(e:Event):void
{
  trace(fr.data);
  // fr.type を参考にオブジェクト変換する等の処理を記述
  // fr.removeEventListener(...)
}
 

browse() メソッドに対してユーザがファイルを選択すると SELECT イベントが発行されます。上のサンプルではこのタイミングで必要なイベントハンドラを設定して load() を呼び出しています。

読み込み処理が成功すると COMPLETE イベントが発行されます。data プロパティに有効な値が設定されるのはこれ以降です。上の例でも COMPLETE イベントハンドラ内で値を参照しています。

さて、ローカルファイルにデータを保存する場合は save() メソッドを使用します。保存するデータは save() の第一引数に指定します。サポートされるデータの型は以下の 3 種類です。それ以外の型の場合は toString() で変換することで String として扱うようです。

  • String : UTF-8 のテキストファイルとして保存
  • XML : XML フォーマットで保存
  • ByteArray : データをそのまま保存

save() メソッドを呼ぶと、ユーザに保存先を選択するためのダイアログが表示されます。その際、ダイアログ内にデフォルトのファイル名を表示したい場合には save() の第二引数として指定することができます。

var fr:FileReference=new FileReference();
var dat:String ="これは UTF-8 の文字列として保存されます";
 
fr.addEventListener(Event.COMPLETE,onComplete);
fr.save(dat, "UTF8Text.dat"); // ダイアログを表示する
 
function onComplete(e:Event):void
{
  trace(fr.name); // ユーザが指定したファイル名を表示
}
 

save() では load() の 4 つのイベントに加えて SELECT と CANCEL イベントも利用できます。

例によって、操作するファイルの大きさに制限はありませんが (もちろんメモリが足りないとかは別として)、サポートされる (テストされている) のは 100MB までです。

Flash コンテンツがファイルにアクセスしないように設定したい場合は mm.cfg 内で LocalFileReadDisable を 1 にします。

Posted by ackie at 06:17 PM | Comments (4)

July 04, 2008

Flash Player 10 ベータ 2 公開

Adobe Labs に Flash Player 10 ベータ 2 が公開されています。(Flash Player 10@Labs

Flash Player 10 からは Windows 98 および OSX 10.1 - 10.3 がサポートされません。一方 Linux では Ubuntu サポートが追加されました。その他のディストリビューションについては RHEL 5 と SUSE 10.3 がサポートされます。

ダウンロードは、こちらのページからどうぞ。(Flash Player 10 Download@Labs) ベータ 1 の記事 (Flash Player 10 beta 公開) に少し詳しい説明がありますが、インストール前に現在インストールされている全ての Flash Player のアンインストールが必要です。

今回追加された機能は以下のとおりです。

  • Sound API の拡張: オーディオデータを ByteArray として利用したり、バッファの状態を検知することができます。
  • Linux WMODE : Linux 上での WMODE がサポートされました。ただし、使用できるブラウザは Firefox 3 限定です。
  • Video4Linux v2 : Linux で動画などを扱う Video4Linux v2 (V4L2) の API がサポートされました。
  • unloadAndStop API : 読み込んだコンテンツに対してこの API を呼ぶと直ちに音の再生を停止やイベントリスナの削除が行われます。AS3 で AS2 のアンロードと似た動作が実現できます。
  • フルスクリーンモードでのキーボードサポート : エンターキーやシフトキーなど限定されたキーのイベントがサポートされます。

その他、たくさんのバグフィックスが行われています。

(追記)

ASDoc も更新されています。 (flashplayer10_as3langref_070208.zip :6.81MB

Posted by ackie at 12:18 PM | Comments (2)

July 01, 2008

Flash 検索の改善についての発表

Adobe から検索エンジン用に最適化された Flash Player テクノロジーの Google と Yahoo! に対する提供について発表がありました。これにより検索エンジンはキーワードの抽出に Flash Player の機能を利用することができるため、動的に生成される画面や実行時に読み込まれるリソースもインデックス作成の対象にすることが可能になります。

まずは、先の 2 社と協力して検索エンジンの SWF コンテンツ対応改善に取り組むことになっていますが、将来的には一般の開発者まで Flash Player の検索対応機能を利用できるような方向で考えたいとのことだそうです。

Posted by ackie at 07:44 PM | Comments (0)