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
-~----------~----~----~----~------~----~------~--~---

Responder a