Pessoal, Estou tentando executar um DD entre vários Button para vários Canvas. Inicialmente estou usando no seguinte código:
<?xml version="1.0" encoding="utf-8"?> > <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" > layout="absolute"> > > <mx:Script> > <![CDATA[ > import br.igorcosta.controls.Button; > import mx.containers.Canvas; > import mx.managers.DragManager; > import mx.core.DragSource; > import mx.events.DragEvent; > import flash.events.MouseEvent; > import mx.core.UIComponent > > [Embed(systemFont='Calibri', fontWeight="bold", > fontName='accordionHeader', mimeType='application/x-font', > flashType='true')] > private var font1:Class; > > private function doDragEnter(event:DragEvent):void > { > DragManager.acceptDragDrop(UIComponent(event.target)); > } > > private function doDragDrop(event:DragEvent):void > { > var btn:Button; > > if (event.dragInitiator.parent == dropCanvas) *>> aqui eu > determinei apenas um Canvas, mas, se eu determino dois ou mais, não funciona > o drag para nenhum... * > btn = event.dragInitiator as Button; > else > { > btn = new Button(); > btn.label = (event.dragInitiator as Button).label; > btn.width = (event.dragInitiator as Button).width; > btn.height = (event.dragInitiator as Button).height; > btn.id = (event.dragInitiator as Button).id; > btn.addEventListener(MouseEvent.MOUSE_DOWN, > doDragStart); > dropCanvas.addChild(btn); > } > btn.x = event.localX - > (event.dragSource.dataForFormat("localX") as Number); > btn.y = event.localY - > (event.dragSource.dataForFormat("localY") as Number); > > //Pegando a posição e o nome do item arrastado > var posX:Number = new Number(); > posX = btn.x; > > var posY:Number = new Number(); > posY = btn.y; > > var nomeBTN:String = new String(); > nomeBTN = btn.id; > > //Exibindo os dados de posição e o nome do item > positionXY.text = "Item" + " " + nomeBTN + ": " + "X: " + > posX.toString() + " " + "e" + " " + "Y: " + posY.toString() + " " + "em" + " > " + event.dragInitiator.parent.name; *>> aqui eu tento recuperar os dados > do objeto arrastado, mas, no caso do nome do Canvas, ele não exibe ao soltar > o objeto, mas se eu movimento este Button novamente, daí sim ele atualiza e > exibe o nome do Canvas.* > } > > private function doDragStart(event:MouseEvent):void > { > var dragInitiator:Button = event.currentTarget as Button; > var dragSource:DragSource = new DragSource(); > var dragProxy:Button = new Button(); > dragProxy.label = dragInitiator.label; > dragProxy.width = dragInitiator.width; > dragProxy.height= dragInitiator.height; > dragSource.addData(event.localX, "localX"); > dragSource.addData(event.localY, "localY"); > DragManager.doDrag(dragInitiator, dragSource, event, > dragProxy); > > } > > ]]> > </mx:Script> > <mx:VBox id="v1" label="Panel 1" > horizontalScrollPolicy="off"> > <mx:Label text="Panel 1"/> > <mx:Button id="ic1" x="221" y="161" label="Texto > 1." color="#FFFFFF" borderColor="#C4C4C4" fillAlphas="[1.0, 1.0]" > fillColors="[#1F31BB, #0D64F4, #5861A4, #28282D]" width="130" height="69" > mouseDown="doDragStart(event)"/> > <mx:Button id="ic2" label="Texto 2..." > color="#FFFFFF" borderColor="#A2A2A2" fillAlphas="[1.0, 1.0]" > fillColors="[#1F31BB, #0D64F4, #5861A4, #28282D]" width="130" height="69" > mouseDown="doDragStart(event)" /> > <mx:HBox id="h1"> > <mx:Canvas id="dropCanvas" > width="200" height="200" > borderStyle="solid" > backgroundColor="#FFFFFF" > dragEnter="doDragEnter(event)" > dragDrop="doDragDrop(event)" > verticalScrollPolicy="off" horizontalScrollPolicy="off"> > </mx:Canvas> > <mx:Canvas id="dropCanvas2" > width="200" height="200" > borderStyle="solid" > backgroundColor="#FFFFFF" > dragEnter="doDragEnter(event)" > dragDrop="doDragDrop(event)" > verticalScrollPolicy="off" horizontalScrollPolicy="off"> > </mx:Canvas> > </mx:HBox> > <mx:TextInput id="positionXY" width="260"/> > </mx:VBox> > </mx:Application> > E ocorrem os problemas acima, *em negrito*. 1) Não consigo determinar 2 ou mais Canvas de destino; 2) Não consigo recuperar o ID do Canvas de destino logo que executo o primeiro Drop, apenas se executo novamente um DD dentro do Canvas ele atualiza e exibe o ID. Alguma idéia de como resolver estes dois problemas? Obrigado desde já. Airton Toyansk --~--~---------~--~----~------------~-------~--~----~ Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev -~----------~----~----~----~------~----~------~--~---
