Flex4でSpriteを使う
Flex で画面を作るのに MXML はとても便利なので使いたいけど、同時に Shape をぐりぐり動かすようなゲームも作りたいというような場合、MXML で Shape を addChild したいことと思います。しかし、MXML のコンポーネントに対して Sprite を addChild しようとすると、例外が発生します。 こういう場合は、mx:Image に対して addChild をすると、Sprite を追加することができ、追加した Sprite に対して Shape なり Bitmap なりを addChild することで、自由にオブジェクトをぐりぐりできます。
サンプルコードは以下。今回の例は Flex4 の MXML ですが、Flex2、 Flex3 でも使えると思います。
<?xml version=“1.0” encoding=“utf-8”?>
<s:Application xmlns:fx=“http://ns.adobe.com/mxml/2009”
xmlns:s=“library://ns.adobe.com/flex/spark”
xmlns:mx=“library://ns.adobe.com/flex/mx”>
<mx:Image id="rootObject" initialize="_onInitialize()">
</mx:Image>
<fx:Script>
<![CDATA[
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.Event;
private var _rootSp:Sprite;
private var _shape:Shape;
private function _onInitialize():void
{
_rootSp = new Sprite();
_rootSp.addEventListener(Event.ENTER_FRAME, _onEnterFrame);
rootObject.addChild(_rootSp);
_shape = new Shape();
_shape.graphics.beginFill(0);
_shape.graphics.lineStyle(1, 0);
_shape.graphics.drawCircle(0, 0, 10);
_shape.graphics.endFill();
_rootSp.addChild(_shape);
}
private function _onEnterFrame(event:Event):void
{
_shape.x++;
_shape.y++;
}
]]>
</fx:Script>
</s:Application>