読者です 読者をやめる 読者になる 読者になる

【ActionScript】ドラッグアンドドロップ

flashを使えば、アプリケーション内でドラッグアンドドロップをさせることが簡単に出来ます。

一番簡単なのは、Datagrid

//ドラッグされる側

//ドロップされる側

で出来ます。 ※もちろん、Datagridの中にdataProviderを書いて、中身のコンテンツがないと何も表示されませんが…。
つまりは、trueに変えてやるだけで可能と言うことです。

listでも出来ますが、dropされる側でどのデータ(オブジェクト)を表示すればいいのかわからなくなってしまうので、ActionScriptでのデータ変換が必要になります。
以下のような関数を定義して、

private function 関数名(変数名:DragEvent):void{
  var 関数名:Object = new Object();
  変数名 = evt.dragSource.dataForFormat("items");
}

listでdragDrop="関数名(event)"で出来ます。

本によると、

データがリストベースコントロールから渡される場合、dataForFormatはitemsという名前の内部的なパラメータを使用する。

とのことである。
リストベースコントロール

Flexの場合、内部継承階層のいずれかの場所でListBaseクラスを拡張するものを言う。
ComboBox,List,HorizontalList,DataGrid,Tile,Menu,Treeなとがあります。

前にも掲載しましたが、もう一度。
利用している参考書です。

Flex 3 ビギナーズガイド (ADOBE TECH LAB)

Flex 3 ビギナーズガイド (ADOBE TECH LAB)