Hatena::Groupactionscript

ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記

2008年07月27日 日曜日

mxmlとActionScriptの関係

| 20:27 | mxmlとActionScriptの関係 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 を含むブックマーク はてなブックマーク - mxmlとActionScriptの関係 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 mxmlとActionScriptの関係 - ActionScript(AS3)やFlexを勉強しようと思ってはじめた日記 のブックマークコメント

週末、Flvの再生プレイヤーを作っていました。色々調べて、

  • HTMLに書いたFlashVarsを受け取って指定したFlvファイルを再生
  • プレイボタンを作成して、再生開始

は出来たんですが、なんだかしっくりこない。

それと、調べてみると、ActionScriptで作るよりも、mxmlで作成するほうが簡単みたい。あれれ?

なんで何に引っかかているのだろう?


mxmlActionScriptの関係

HTMLJavaScript見たいな関係だと思っていたけれど、そうでもない気がする。

mxmlでも、いろいろなことが出来るのを今回見てしまうと

mxmlでできることはActionScriptで出来る?

というのをチラッと読んだような気がする(本当かどうかはわからないのだけれど)。

ということは、HTMLJavaScriptという関係じゃないよね。

役割分担

グラフィック

bitmap系の画像は読み込みの方法がたくさん書いてあるんだけれど、イラストレータとかで作られたベクトル系のデータは使えないのだろうか?

Flex builder

Flex BuilderFlashとはどう違うんだろう?タイムラインというのが違うんだろうけれど、ここら辺の違いがどうも見えてこないので、調べてみようと思います。

Aptana Studioというのもあるらしいけれど...。

SWFへのアプローチ

mxmlActionScriptFlex builderFlashというアプローチ方法があって、でも、出来るのはSWF。アプローチが違うけれど、なんだか、混乱しています。

ConquestArrowConquestArrow2008/07/30 23:38> mxmlとActionScriptの関係
HTML(構造定義)とJavaScript(挙動制御)という意味では大体同じですが、MXMLで定義されるGUIや機能自体がASで書かれている点が異なります。したがって、MXMLで生成されるものを全てASで書くことが可能です。ためしにMXMLをコンパイル時にコンパイルオプションのkeep-generated-optionを有効にしておくと、mxmlcが自動生成したASを見ることができます。
その意味では、MXMLとASの関係はMozillaのXULとJavaScriptの関係に近いかもしれません。

> たぶん、UIが必要なのはmxmlで作り
前述のようにMXMLで生成されるUIも元はASで作られていますから、MXMLを使わずともUIは作れます。ただゼロから作るのは大変ですので、簡単に(RIA向けの)UIが作れるよう提供されているのがFlexフレームワークです。MXMLはFlexフレームワークの主にUIを記述するためのXMLの一種、という関係になります。

> グラフィック
FlashPlayer APIがネイティブで対応しているベクター形式はSWF形式です。それ以外はASで解析して自力で描画する形になります。たぶん、メジャーな形式はライブラリが公開されているでしょう。

> Flex BuilderとFlash
Flashは元々ベクターアニメーションの技術ですので、いわゆるFlash IDE(Flash CS3とか)は基本はアニメーション作成ツールです。ネイティブのベクターグラフィックの作成から、ASだけでは作成が難しいパスアニメーションやモーフィング、FlexSDKでは生成できないムービークリップ生成やタイムラインの制御、固定的な文字描画(縦書き)などができます。主にマルチメディア系SWFファイル作成に使われていますが、TVアニメや動画作成、ゲームソフトのGUI生成などでも使われています。

一方FlexはFlashPlayer上で構築できるRIAのフレームワーク環境です。GUIの部分はFlex UI Componentとしてあるものを使用し、主にASによってRIAを作成する形です。Flex BuilderはFlex向けのIDEですが、ベースがEclipseということからも分かるとおり、アプリケーション開発IDEです。

どちらのツールでもSWFファイルを作成できますが、得意な作り方がことなる(Flash IDE=マルチメディア系SWF, Flex=RIA系SWF)と考えていただければよろしいかと。

> SWFへのアプローチ
SWFは元々アニメーションにスクリプト制御ができるよう発展してきたファイル形式ですので、アニメだけのSWFや音だけのSWF,全てスクリプト駆動のSWFなど作成できますし、そのための方法も無数に存在します。またFlashPlayerはASを直接実行しているのではなく、JREや.NETの様に中間コードを実行していますので、ASですらなくとも(コンパイラさえあればRubyでもPythonでもSmallTalkでもLispでも)原理的にはSWFを生成・制御できます。