feb19.jp blog - life is creative!

Flash CS4 Professionalからはメタデータが使えるらしい

ブックマークに追加する tags:      

Flash CS4 Professionalからはメタデータが使えるらしい

要は、Flex用に書かれているActionScript3.0コードによく見かけられるこの記述、

[SWF(width = "320", height = "240", backgroundColor = "0xFFCC00", frameRate = "30")]

これが、Flash CS4 Professionalから使えるとのこと。

とはいえ内部構造としては、メタデータはFlex SDK専用の機能なので、FlashにFlex SDKを読み込ませてメタデータを使う、ということらしいです。要は、Flash CS4をインストールしたら、Flex SDKを落としてきて、ライブラリパスを通す、ということらしいです。
(参考:Using the Flex SDK with Flash CS4)

ちなみに上のメタデータコードの意味は(説明するまでもないですが)、「SWFのステージサイズを320x240に設定し、背景色を#FFCC00に、フレームレートを30fpsに設定する」という意味です。

これで、Flashの操作画面で何も選択していない時に、プロパティパネルに表示されているドキュメントの「プロパティパネル」を操作せずとも、ActionScriptの中で記述してしまうことが出来てしまいます。
書き出しバージョンとかも選べるのですかね?

また、Pixel Benderの.pbjファイルを使って、Flash Player 10から対応するShaderFilter効果を得たいときに、たとえばこんなコードを書くことができるのですが、

import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.events.Event;
import flash.utils.ByteArray;
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = new URLLoaderDataFormat.BINARY;	//pixel benderファイルをバイナリで読み取る→後にこれをShaderに突っ込む
urlLoader.addEventListener(Event.COMPLETE, loadCompleteHandler);
urlLoader.load(new URLRequest("pixelbender.pbj");
function loadCompleteHandler(e:Event):void
{
	var pixelBenderData:ByteArray = ByteArray(URLLoader(e.currentTarget).data);
	var shader:Shader = new Shader(pixelBenderData);
	
	shader.data.*****.value = [0];	//それぞれのPixelBenderに応じてこの辺は変える
	shader.data.****.value = [20];
	
	var sprite:Sprite = new Sprite();	//フィルターを適用するオブジェクト
	sprite.graphics.beginFill(0xff00ff);
	sprite.graphics.drawRect(0, 0, 280, 280);
	sprite.graphics.endFill();
	addChild(sprite);
	
	sprite.filters = [new ShaderFilter(shader)];
}

これではpbjファイルのロードを待たなくてはなりません。

なので、pbjファイルをメタデータタグを使って、SWFにリンケージとして埋め込んでしまいます。

[Embed(source = "pixelbender.pbj", mimeType = "application/octet-stream")]
private var pixelBenderDataRef:Class;

これを書いておけば、urlLoaderうんぬんの部分は省けるので、いきなり下記のように書けてしまいます。

var pixelBenderData:ByteArray = new pixelBenderDataRef();
var shader:Shader = new Shader(pixelBenderData);

まとめると、こんな感じ。

package
{
	import flash.display.Shader;
	import flash.display.Sprite;
	import flash.filters.ShaderFilter;
	import flash.utils.ByteArray;
	
	[SWF(width = "320", height = "240", backgroundColor = "0xFFCC00", frameRate = "30")]
	
	/**
	* メタデータを使ってPixelBenderファイルを埋め込むサンプルクラス
	*/
	public class MetaDataAndPixelBenderTest extends Sprite
	{
		[Embed(source = "pixelbender.pbj", mimeType = "application/octet-stream")]
		private var pixelBenderDataRef:Class;
		
		public function MetaDataAndPixelBenderTest()
		{
			var pixelBenderData:ByteArray = new pixelBenderDataRef();
			var shader:Shader = new Shader(pixelBenderData);
			
			shader.data.*****.value = [0];	//それぞれのPixelBenderに応じてこの辺は変える
			shader.data.****.value = [20];
			
			var sprite:Sprite = new Sprite();	//フィルターを適用するオブジェクト
			sprite.graphics.beginFill(0xff00ff);
			sprite.graphics.drawRect(0, 0, 280, 280);
			sprite.graphics.endFill();
			addChild(sprite);
			
			sprite.filters = [new ShaderFilter(shader)];
		}
	}
}

というわけでこれによって、Flex用に書かれたActionScriptとの差異はコンポーネントの差ぐらいになったということでしょうか。
Flashはバージョンがいっぱいあって、ActionScriptにもバージョンがいっぱいあって、色々こんがらがってくるので、同じAdobeの同じFlashPlayerをターゲットにしている開発環境用のActionScriptでは差異を減らしていっていただきたいものです(って僕だけかも)。

参考
Adobe: メタデータタグ -- Flex 2.01

2008年10月28日14:19

Webデザインブログ

「Flash CS4 Professionalからはメタデータが使えるらしい」の関連エントリー

 iTunes Store(Japan)

コメントを投稿

トラックバック

このエントリーのトラックバックURL:
http://feb19.jp/mt/mt-tb.cgi/158

この一覧は、次のエントリーを参照しています: Flash CS4 Professionalからはメタデータが使えるらしい:

» Flash CS4 で Flex SDK (mx パッケージ、クラス) を使う 送信元 feb19.jp blog
Flex 用のライブラリとかを見ると mx パッケージとか使われてい... [詳しくはこちら]

Navigation

古:Flash Player 10 Astroを予習。Dynamic Sound Generate編 #3
新:AS3でJSONを読みこむ
トップページ

Recently Entries
Flash 上でパブリッシュしたとき、型宣言されていない変数・関数があったら警告を出す
Flex SDK (mxmlc)や Flex Builder とかで...
Flash Builder 4 Standard 導入
色々メモリリークチェックとか出来る Premium は必要になってか...
Mac でファイルの関連付けを変える(Mac で AIR アプリがアップデート出来ないを解決する方法)
ファイルを右クリックして「情報を見る」を選び、表示されたウィンドウの...
Mac OS X 10.6 Snow Leopard から入ってるフォント「Menlo」がコーディング作業にいい感じ
Xcode でコード書いているとき、Eclipse でコード書くより...
AIR で JSON 形式ファイルの入出力
AIR 祭り開催中。今回はファイル入出力。AS3 で扱っている Ob...
Adobe CS5 ティザーサイトオープン
カウントダウンが始まっています。いよいよ CS5 ですね。globa...
AIR でファイルがドラッグアンドドロップされたことを NativeDragEvent で検知する
最近また AIR が楽しい気がして触っているのですが、 Google...
iPhone アプリ "iBeat - BPM Counter" を発売しました & iPhone インタラクションデザインについて
BPM 計測アプリです。既に似たようなアプリはいくつか発売されている...
AS3 の演算子 ||= について
AS3 だけでつかえるものではないのですが、AS3 での動作を確認し...
iPhone SDK 「カテゴリ」について+NSString の空白文字を除去する
Objective-C では、高位のフレームワークで、低位のフレーム...