彩音 - Adobe AIR - 研究室:XION -Adobe AIR-laboratory
MouseEventクラスのイベント通知からマウスのローカル座標を取得する

MouseEventクラスのイベント通知を受けるハンドラを使用した場合、クリックした位置のローカル座標がeventオブジェクトの localX, localY プロパティとして送られる。
以下の例では mc1インスタンスをクリックするとその位置に mc1 の中に入っている mc2 を移動させる。 mc2 の座標は mc1 を基準としたローカル座標で設定する必要があるので、eventオブジェクトの localX, localY プロパティを利用する。


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="192" initialize="init()">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
private var container:UIComponent = new UIComponent();
private var mc1:Sprite = new Sprite();
private var mc2:Sprite = new Sprite();
private function init():void {
addChild(container);
mc1.graphics.beginFill(0x000000);
mc1.graphics.drawRect(0,0,250,120);
mc1.x = 150;
mc1.y = 40;
container.addChild(mc1);
mc2.graphics.beginFill(0xffcc00);
mc2.graphics.drawCircle(0,0,40);
mc1.addChild(mc2);
mc1.addEventListener(MouseEvent.CLICK, click);
}
private function click(event:MouseEvent):void {
mc2.x = event.localX;
mc2.y = event.localY;
}
]]>
</mx:Script>
</mx:Application>

索引