Hi,

can someone help me with the drag and drop problem I have?
everytime I drop the image, it seems like random move few pix away
from the dropped location,
I been debug this problem for a while, can't find out why it happens.
here is my code,
thanks ahead!

----------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
layout="horizontal" viewSourceURL="srcview/index.html">
<mx:Script>
<![CDATA[
import mx.controls.Image
import mx.core.DragSource;
import mx.core.UIComponent
import mx.events.DragEvent
import mx.managers.DragManager

 [Bindable] public var xyOff : String = "";

private function doDragEnter(event:DragEvent):void
{
    DragManager.acceptDragDrop(UIComponent(event.target));
}

private function doDragDrop(event:DragEvent):void
{
    var img:Image;
    if (event.dragInitiator.parent == dropCanvas)
        img = event.dragInitiator as Image;
    else
    {
        img = new Image();
        img.source = (event.dragInitiator as Image).source;
        img.addEventListener(MouseEvent.MOUSE_DOWN, doDragStart);
        dropCanvas.addChild(img);
    }
    img.x = event.localX -  (event.dragSource.dataForFormat("localX")
as Number);
    img.y = event.localY - (event.dragSource.dataForFormat("localY") as Number);
    img.visible = true;
    xyOff += "\nex=" + event.localX +"\ney=" + event.localY;
    xyOff += "\nex2=" + (event.dragSource.dataForFormat("localX") as Number) +
             "\ney2=" + (event.dragSource.dataForFormat("localY") as Number);

}

private function doDragStart(event:MouseEvent):void
{
    var dragInitiator:Image = event.currentTarget as Image;
    var dragSource:DragSource = new DragSource();
    var dragProxy:Image = new Image();
    dragProxy.source = dragInitiator.source;
    dragProxy.width = dragInitiator.width;
    dragProxy.height= dragInitiator.height;
    dragSource.addData(event.localX, "localX");
    dragSource.addData(event.localY, "localY");
    dragInitiator.visible = false;
    dragProxy.visible = true;

    DragManager.doDrag(dragInitiator, dragSource, event, dragProxy,0,0,1,true);
}


]]>
</mx:Script>

    <mx:VBox>
        <mx:Image source="@Embed('assets/trash_can.png')"
mouseDown="doDragStart(event);" id="img" />
        <mx:TextArea height="100%" width="59" text="{xyOff}"/>
    </mx:VBox>
    <mx:Canvas id="dropCanvas" width="100%" height="100%" borderColor="#996633"
        dragEnter="doDragEnter(event)" dragDrop="doDragDrop(event)"
        borderStyle="solid" cornerRadius="20" borderThickness="1"
backgroundColor="#336699"/>
</mx:Application>

----------------------------------------------------------------------


Willy
----------------------------------------------------------------------
6 X 9 = 42

Q: How do you spell "google"?
A: Why don't you google it?
----------------------------------------------------------------------

Reply via email to