ホーム >> 左脳ActionScript3 >> フリーの AIR 開発環境 >> AIRプログラミング >> ドラッグ&ドロップ >> ドラッグの視覚効果アイコンをつけるには
ドラッグの視覚効果アイコンをつけるには
ドラッグ中に、ドラッグアイコンを表示させる事が出来ます。

dragicon.PNG

ドラッグ作業中にドラッグしているデータの種別を視覚で確認出来るので、オペレーションには便利です。フリーのアイコンを探して来て使用するのも良いでしょう。
しかし、ドラッグ出来るデータと関連が無い絵だと説得力がなくなってしまうので注意が必要です。


アイコン表示のコード

drag.as:説明の為、前述の NativeDragEvent 部分を除いています。

package  
{
    import flash.desktop.Clipboard;
    import flash.desktop.ClipboardFormats;
    import flash.desktop.NativeDragManager;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.geom.Point;

    /**
     * ...
     * @author 
     */
    public class drag extends Sprite
    {

        public function drag() 
        {
            graphics.beginFill(0xc0f0f0);
            graphics.moveTo(0, 0);
            graphics.lineTo(100, 0);
            graphics.lineTo(100, 100);
            graphics.lineTo(0, 100);
            graphics.endFill();
            //
            addEventListener(MouseEvent.MOUSE_DOWN, dragStart); //  ドラッグ開始のマウスボタン押下
        }

        [Embed(source = '../neko.PNG')]
        private static const    NekoImage:Class;    //  ドラッグアイコンイメージ

        private function dragStart(e:MouseEvent):void 
        {   //  ドラッグ開始
            trace("Start!");
            var c:Clipboard = new Clipboard();
            //  テキストデータ
            var s:String = "とりあえず、カリカリ3杯で許してやるにゃ。";
            c.setData(ClipboardFormats.TEXT_FORMAT, s);
            //  ドラッグイメージ
            var img:BitmapData = Bitmap(new NekoImage()).bitmapData;
            //  マウスポインタからの相対座標
            var pos:Point = new Point( -img.width / 2, -img.height / 2);
            //
            NativeDragManager.doDrag(this, c, img, pos);
        }
    }
}
NativeDragManager.doDrag で、アイコンイメージの BitmapData を指定しています。また、マウスカーソルを中心にした相対座標をしていする事により、表示されるアイコン画像の位置を調整できます。
実際にペーストされるデータを指定しているのが Clipboard.setData というメソッドで、この例ではテキスト「とりあえず、カリカリ3杯で許してやるにゃ。」を指定しています。

neko.PNG:気付いたら猫っぽい絵になっていました。プロジェクトと同じ階層へ置いておきます。
neko.PNG


動作

このコードを動かすと、このようになります。
ドラッグすると、マウスカーソルに自作の画像が半透明で着いて来ます。

dragicon.PNG
しかし、見た目に反してペーストされるデータはテキストです。
テキストをペーストできるアプリケーションにドラッグすると、「とりあえず、カリカリ3杯で許してやるにゃ。」とペーストされます。


ホーム >> 左脳ActionScript3 >> フリーの AIR 開発環境 >> AIRプログラミング >> ドラッグ&ドロップ >> ドラッグの視覚効果アイコンをつけるには