Hi jmfillman,

You made it all the way, except for the variable referencing part.  As opposed 
to creating a new Button object, you just need to get a reference to the Button 
you've been dragging around, i.e. var selectedButton:Button = event.target as 
Button;

Enjoy. 

- Jae 

public function mouseUp(event:MouseEvent) :void 
{        
    if (event.target is Button) 
    {
        event.target.stopDrag( );
        
        // Assign a reference variable to the button that has been dragged 
around.
        var selectedButton:Button = event.target as Button;
        
        if (event.stageY. valueOf() >= 10 && event.stageY. valueOf() < 110) 
        {
            selectedButton.x = 0;
            selectedButton.y = 0;
            selectedButton.width = 150;
        }
        
        if (event.stageY.valueOf() >= 110 && event.stageY.valueOf() < 210) 
        {
            selectedButton.x = 0;
            selectedButton.y = 100;    
            selectedButton.width = 150;
        }
    }
}


----- Original Message ----
From: jmfillman <[EMAIL PROTECTED]>
To: [email protected]
Sent: Friday, February 23, 2007 4:10:31 PM
Subject: [flexcoders] Re: Drag & Drop Question









  


    
            Thank you Jae. That is far better than what I had worked out.



This had led me to another question. When I move one of the buttons, 

the mouseUp function is firing and going to the correct IF statement. 

What it isn't doing is moving the item to the (x,y) position 

specified in the IF statement, it's just dropping it where ever I 

drop it.



I'm also curious what the impact is of having every item 

called "buttonA" and if there isn't a better way.



<?xml version="1.0" ?>

<mx:Application xmlns:mx="http://www.adobe. com/2006/ mxml" 

layout="absolute" width="500" height="620" borderStyle= "solid" 

creationComplete= "initApp( );">



<mx:Script>

        <![CDATA[

                        public var slot001A:Boolean;

                        public var slot001B:Boolean;            

        



                        import mx.controls. Button;

                        import mx.controls. Alert;

            import mx.events.DragEvent ;

            import mx.controls. List;

            import mx.managers. DragManager;

            import mx.core.DragSource;

                        

            private function initApp():void {

                var dp:Array = ([

                    {label:"First" , data:"25"},

                    {label:"Second" , data:"50"},

                    {label:"Third" , data:"75"},

                    {label:"Fourth" , data:"100"},

                ]);

                listOne.dataProvide r = dp;

            }

            

            private function dragEnterHandler( event:DragEvent) :void {

                var dropTarget:Canvas= event.currentTar get as Canvas;

                    dropTarget.setStyle ("borderThicknes s", 5);

               if (slot001A==false) {

                                        if (event.stageY. valueOf() >= 

10 && event.stageY. valueOf() < 110) {

                        DragManager. acceptDragDrop( dropTarget) ;      

                                        

                                        }

               }

               if (slot001B==false) {

                                        if (event.stageY. valueOf() >= 

110 && event.stageY. valueOf() < 210) {

                        DragManager. acceptDragDrop( dropTarget) ;      

                                        

                                        }

               }

            }

                

            private function dragExitHandler( event:DragEvent) :void {

                var dropTarget:Canvas= event.currentTar get as Canvas;

                                revertBoxBorder( );                

            }

            

            public function dragDropHandler( event:DragEvent) :void {

                var dropTarget:Canvas= event.currentTar get as Canvas;

                var buttonA:Button = new Button;

                                

        buttonA.label= listOne.selected Item.label;

                                

        buttonA.height= listOne.selected Item.data;

                                        buttonA.addEventLis tener

(MouseEvent. MOUSE_DOWN, mouseDown);

                                        buttonA.addEventLis tener

(MouseEvent. MOUSE_MOVE, mouseMove);

                                        buttonA.addEventLis tener

(MouseEvent. MOUSE_UP, mouseUp);

                                        buttonA.addEventLis tener

(MouseEvent. CLICK, buttonClick) ;



                                if (event.stageY. valueOf() >= 10 && 

event.stageY. valueOf() < 110) {

                                        buttonA.x = 0;

                                        buttonA.y = 0;

                                        buttonA.width = 150;

                                        slot001A=true;

                                }

                                else{

                                        if (event.stageY. valueOf() >= 

110 && event.stageY. valueOf() < 200) {

                                                buttonA.x = 0;

                                                buttonA.y = 110;

                                                buttonA.width = 150;

                                                slot001B=true;

                                        }

                                }

                                dropBox.addChild( buttonA);

                revertBoxBorder( );                

            }

                        

            public function buttonClick( event:MouseEvent ):void {



}



                        public function mouseMove

(event:MouseEvent) :void {

                                event.updateAfterEv ent();

                        }



                        public function mouseDown

(event:MouseEvent) :void {

                                if (event.target is Button) {

                                        event.target. startDrag( );

                                }

                        }

                        

                        public function mouseUp

(event:MouseEvent) :void {

                var buttonA:Button = new Button;

                                if (event.target is Button) {

                                        event.target. stopDrag( );

                                        if (event.stageY. valueOf() >= 

10 && event.stageY. valueOf() < 110) {

                                                buttonA.x = 0;

                                                buttonA.y = 0;

                                                buttonA.width = 150

        

                                        }

                                        if (event.stageY. valueOf() >= 

110 && event.stageY. valueOf() < 210) {

                                                buttonA.x = 0;

                                                buttonA.y = 100;

                        

                                                buttonA.width = 150

                                        }

                                }

                        }                           

            private function revertBoxBorder( ):void {

                dropBox.setStyle( "borderThickness ", 

1);                

            } 

            

        ]]>

</mx:Script>

                <mx:List id="listOne" dragEnabled= "true" 

dropEnabled= "true" x="10" y="10"></mx: List>

                <mx:Canvas x="190" y="10" width="308" height="200" 

borderStyle= "solid" borderColor= "#000000" backgroundColor= "#FFFFFF" 

                        dragEnter="dragEnte rHandler( event);" 

id="dropBox" dragExit="dragExitH andler(event) ;"

                        dragDrop="dragDropH andler(event) ;">   

                </mx:Canvas>

</mx:Application>





    
  

    
    




<!--

#ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg table {font-size:inherit;font:100%;}
#ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;}
#ygrp-mlmsg pre, code {font:115% monospace;}
#ygrp-mlmsg * {line-height:1.22em;}
#ygrp-text{
font-family:Georgia;
}
#ygrp-text p{
margin:0 0 1em 0;
}
#ygrp-tpmsgs{
font-family:Arial;
clear:both;
}
#ygrp-vitnav{
padding-top:10px;
font-family:Verdana;
font-size:77%;
margin:0;
}
#ygrp-vitnav a{
padding:0 1px;
}
#ygrp-actbar{
clear:both;
margin:25px 0;
white-space:nowrap;
color:#666;
text-align:right;
}
#ygrp-actbar .left{
float:left;
white-space:nowrap;
}
.bld{font-weight:bold;}
#ygrp-grft{
font-family:Verdana;
font-size:77%;
padding:15px 0;
}
#ygrp-ft{
font-family:verdana;
font-size:77%;
border-top:1px solid #666;
padding:5px 0;
}
#ygrp-mlmsg #logo{
padding-bottom:10px;
}

#ygrp-vital{
background-color:#e0ecee;
margin-bottom:20px;
padding:2px 0 8px 8px;
}
#ygrp-vital #vithd{
font-size:77%;
font-family:Verdana;
font-weight:bold;
color:#333;
text-transform:uppercase;
}
#ygrp-vital ul{
padding:0;
margin:2px 0;
}
#ygrp-vital ul li{
list-style-type:none;
clear:both;
border:1px solid #e0ecee;
}
#ygrp-vital ul li .ct{
font-weight:bold;
color:#ff7900;
float:right;
width:2em;
text-align:right;
padding-right:.5em;
}
#ygrp-vital ul li .cat{
font-weight:bold;
}
#ygrp-vital a {
text-decoration:none;
}

#ygrp-vital a:hover{
text-decoration:underline;
}

#ygrp-sponsor #hd{
color:#999;
font-size:77%;
}
#ygrp-sponsor #ov{
padding:6px 13px;
background-color:#e0ecee;
margin-bottom:20px;
}
#ygrp-sponsor #ov ul{
padding:0 0 0 8px;
margin:0;
}
#ygrp-sponsor #ov li{
list-style-type:square;
padding:6px 0;
font-size:77%;
}
#ygrp-sponsor #ov li a{
text-decoration:none;
font-size:130%;
}
#ygrp-sponsor #nc {
background-color:#eee;
margin-bottom:20px;
padding:0 8px;
}
#ygrp-sponsor .ad{
padding:8px 0;
}
#ygrp-sponsor .ad #hd1{
font-family:Arial;
font-weight:bold;
color:#628c2a;
font-size:100%;
line-height:122%;
}
#ygrp-sponsor .ad a{
text-decoration:none;
}
#ygrp-sponsor .ad a:hover{
text-decoration:underline;
}
#ygrp-sponsor .ad p{
margin:0;
}
o {font-size:0;}
.MsoNormal {
margin:0 0 0 0;
}
#ygrp-text tt{
font-size:120%;
}
blockquote{margin:0 0 0 4px;}
.replbq {margin:4;}
-->





Reply via email to