Hi there I am using this code as the basis of my project:
http://blogs.adobe.com/flexdoc/2007/03/creating_resizable_and_draggab.html

I modified the code and came up with my own drag/drop functions:

private function tbMouseMoveHandler(event:MouseEvent):void 
{
        // create the filterEditObj in order to display its data in the
Filter Settings Edit form
        // - form id = 
        // == nodeEditObj = Object(Panel(event.currentTarget));
        nodeEditObj = Object(Button(event.currentTarget)).data;
        
        //Alert.show("test");
        // here call to DB to get the id's information
        
        
    // == var dragInitiator:Panel=Panel(event.currentTarget);
    var dragInitiator:Button = Button(event.currentTarget);
    var ds:DragSource        = new DragSource();
    ds.addData(event.currentTarget, 'panel');
    
    // Update the xOff and yOff variables to show the
        // current mouse location in the Panel.  
    xOff = event.currentTarget.mouseX;
    yOff = event.currentTarget.mouseY;
    
    // Initiate d&d. 
    DragManager.doDrag(dragInitiator, ds, event);                    
}            

// Function called by the canvas dragEnter event; enables dropping
private function doDragEnter(event:DragEvent):void 
{
    DragManager.acceptDragDrop(Canvas(event.target));
}

// Function called by the Canvas dragDrop event; 
// Sets the panel's position, 
// "dropping" it in its new location.
private function doDragDropMemberCanvas(event:DragEvent):void 
{
        // Compensate for the mouse pointer's location in the title bar.
        var tempX:int = event.currentTarget.mouseX - xOff;
        event.dragInitiator.x = tempX;
        
        var tempY:int = event.currentTarget.mouseY - yOff;
        event.dragInitiator.y = tempY;
        
        
        //var filterSetObj:String = List(event.dragInitiator).toString();
        
        //Alert.show(filterSetObj);
        
        //var testB:Button = new Button();
        
        
        // drop a child if it is dragged into the canvas
        //=========memberFilters.addChild(Panel(event.dragInitiator));
        memberFilters.addChild(Button(event.dragInitiator));
        // Put the dragged panel on top of all other components.
        // == memberFilters.setChildIndex(Panel(event.dragInitiator),
memberFilters.numChildren-1);
        memberFilters.setChildIndex(Button(event.dragInitiator),
memberFilters.numChildren-1);
        
        // function call to update the filter set
        //updateFilterSet();
}

As you can see I'm not using panels but Button componenets that have
the "data" attributes set to an object containing data related to it.

Anyway what I am trying to do is instead of dropping the button that i
have clicked and dragged to instead create an instance (a copy) of a
button that has been clicked AND dragged at the same time so that if
there is only one button after I click and drag there will be two
buttons with identical data except that their "id" will be different -
i will probably use some way to make sure that no two ids are the same.

Any ideas, tips? thank you so much!

Reply via email to