Flex3 SDK を試してみた

今日は Ao君に Adobe Air を教わりました。


Ao君がまとめてくれた資料


教わるだけだと申し訳ないので、僕も小ネタとして Flex3 SDK の簡単なサンプルを作ってみた。

Flex3 SDK のインストール

以下のページに従ってインストール。

インストール手順

Flex の基本

Flex では XHTML + JavaScript のような感覚で SWF を作成することができます。

XHTML に該当するものが MXML と呼ばれる XML ファイル
  • MXMLファイルはボタンとかテキストフィールドとか画像とかの要素を記述する為のファイル
JavaScript に該当するものがご存知 ActionScript
  • ActionScript は、MXMLファイルで記述した要素に対して動きをつけたりする
  • MXMLファイル内でも外部ファイルでも記述できる

作成した MXML ファイルを Flex3 SDK に付属する mxmlc というツールでコンパイルすると SWF ファイルができあがります。

実例:SVG ファイルを読みこんでオッサンを表示させる

MXML + ActionScript の実例。
オッサンが描かれた SVGファイルを読み込んで表示させる。

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="1000" height="500">
    <mx:Script>
        <![CDATA[
        
            [Embed(source="man.svg")]
            [Bindable]
            public var imgCls:Class;
            
        ]]>
    </mx:Script>
    
    <mx:Image id="myImageRaw" source="{imgCls}"/>
</mx:Application>


>>実際に書き出されたSWFファイル。

実例2:クリックされたらオッサンが拡大する

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="1000" height="500">
    <mx:Script>
        <![CDATA[
		
		[Embed(source="man.svg")]
		[Bindable]
		public var imgCls:Class;

		private function onClick(e:MouseEvent):void {
			e.currentTarget.scaleX += .1
			e.currentTarget.scaleY += .1
		}
            
        ]]>
    </mx:Script>
    
    <mx:Image id="happyMan" source="{imgCls}" click="onClick(event)"/>
</mx:Application>

>>実際に書き出されたSWFファイル。

実例3:マウスオーバーするとオッサンが逃げる

<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="1000" height="500">
    <mx:Script>
        <![CDATA[
		
		[Embed(source="man.svg")]
		[Bindable]
		public var imgCls:Class;

		private function onOver(e:MouseEvent):void {
			e.currentTarget.addEventListener(Event.ENTER_FRAME, runaway);
		}

		private function onOut(e:MouseEvent):void {
			e.currentTarget.removeEventListener(Event.ENTER_FRAME, runaway);
		}
		
		private function runaway(e:Event):void {
			e.currentTarget.x += 10;
		}
            
        ]]>
    </mx:Script>
    
    <mx:Image id="happyMan" source="{imgCls}" rollOver="onOver(event)" rollOut="onOut(event)"/>
</mx:Application>

>>実際に書き出されたSWFファイル。