Flash Builder 4 -> DragManager
DragManager クラスは、Drag&Drop の操作の管理をするもの。
Adobe® Flex® 4.1 リファレンスガイド:DragManager
[as3onfx4]import mx.managers.DragManager;[/as3onfx4]としておけば、インスタンス化は不要。
acceptDragDrop メソッドは、
dropEnter イベントが起こっている最中にドロップ先の受け入れ態勢を整える。
[as3onfx4]private function doDragEnterHandler(event:DragEvent):void
{
var dropzone:HGroup = HGroup(event.currentTarget);
DragManager.acceptDragDrop(dropzone);
}[/as3onfx4]
doDrag メソッドは、ドラッグを開始させる。
[as3onfx4]public static function doDrag(
dragInitiator:IUIComponent,
dragSource:DragSource,
mouseEvent:MouseEvent,
dragImage:IFlexDisplayObject = null,
xOffset:Number = 0,
yOffset:Number = 0,
imageAlpha:Number = 0.5,
allowMove:Boolean = true
):void[/as3onfx4]
Adobe® Flex® 4.1 リファレンスガイド:doDrag() メソッド
mouseDown マウスイベントに引っ付けてドラッグ開始。
[as3onfx4]Object.addEventListener(‘mouseDown’, doDragStart);
private function doDragStart(event:MouseEvent):void
{
var dragInitiator:HGroup = HGroup(event.currentTarget);
DragManager.doDrag(dragInitiator, new DragSource(), event);
}[/as3onfx4]
dragInitiator(ドラッグイニシエータ)は、ドラッグ元(ドラッグされる)オブジェクト。
マウスが触っているやつね。
ちなみに、ドラッグ中にマウスに引っ付いてくるやつ、この下の dragImage のことを
dragProxy(ドラッグプロキシ)と呼ぶらしい。
dragSource は、よく分からない・・・。
参考にさせていただいたサイトでも new DragSource() なんて書いてあったから、普段はどうでもいいのかな?
mouseEvent は、まんまマウスイベントオブジェクト。
dragImage は、ドラッグ中に表示されるイメージ。
デフォルト値 null にしておくと、ドラッグ元オブジェクトと同サイズの長方形が出てくる。
オリジナルを表示させたければ新たにイメージオブジェクトを生成する必要ありっぽい。
<参考サイト>
@IT:Flexアプリの直感的なドラッグ&ドロップを体験しよう
xOffset, yOffset は、それぞれ x 方向、y 方向のオフセット値。
デフォルトは 0 。
imageAlpha は、dragImage のアルファ値。
デフォルトは 0.5 。
allowMove は、ドロップターゲットで、ドラッグしたデータの移動が可能かどうか。