Cara, não fica chateado com a demora, mas eu realmente tenho preguiça de ler
posts com código :0P
Então, como tu ficou "de molho" por algum tempo, resolvi ler tua mensagem...
É que demora mais pra responder nesses casos, ok?
Enfim, é o seguinte: tu pegou isso dos exemplos do quick start, não foi? Isso é
bom. Mostra que estás estudando :0)
Mas esse exemplo faz exatamente isso que tu diz: ele arrasta a imagem e não
coloca ele dentro do container... Está quase tudo certo com teu exemplo, apenas
o valor do darsource tem que ser mantido, se quiseres operar com ele depois
(usas "items" num lado e "value") no outro.
Enfim, acho que o que queres é mais parecido com o que tem no help mesmo: Adobe
Flex Help / User Interfaces / Drag n drop examples
Estuda esse código aí.
Na hora de "largar" o objeto usa isso aqui:
private function dragDropHandler(event:DragEvent):void {
var container:Canvas=Canvas(event.currentTarget);
var target:Image=Image(event.dragInitiator);
container.addChild(target);
var correctedPoint:Point=container.globalToContent(new
Point(mouseX, mouseY));
target.x=correctedPoint.x;
}
Já aviso que vai erro quando fores mover (arrastar e soltar) o objeto dentro do
teu canvas, mas isso é moleza de corrigir.
E se não for assim tão fácil corrigir o problema, é só escrever de novo...
Mas lembra: pouco código se queres ajuda rápida, ok?
Gabriela Trindade Perry - http://www.gabriela.trindade.nom.br
> Date: Tue, 30 Sep 2008 15:40:53 -0700
> Subject: [flexdev] DragAndDrop
> From: [EMAIL PROTECTED]
> To: [email protected]
>
>
> Boa noite
>
> Estou trabalhando em uma tela que deve utilizar DragAndDrop para
> manipular imagens.
>
> Eu preciso mover componentes de um applicationControlBar
> para o canvas abaixo e movê-las pelo canvas conforme a vontade do
> usuário.
>
> O erro que acontece é o seguinte: quando eu tiro uma imagem do
> applicationControlBar e movo para o canvas a imagem some do
> applicationControlBar e não aparece no canvas.
>
> Tenho mais coisas pra implementar mas por enquanto é isto^^.
>
> Agradeceria se pudessem me ajudar, segue abaixo o código da minha
> tela:
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
> layout="absolute" >
> <mx:Script>
> <![CDATA[
> import mx.core.DragSource;
> import mx.managers.DragManager;
> import mx.events.DragEvent;
> import mx.collections.ArrayCollection;
> import mx.controls.Image;
> import mx.core.UIComponent
>
> [Embed("assets/img1.jpeg")]
> private var bioshock_icon:Class;
>
> [Embed("assets/img2.jpeg")]
> private var crysis_icon:Class;
>
> [Embed("assets/img3.jpeg")]
> private var halo_icon:Class;
>
> [Embed("assets/img4.jpeg")]
> private var neverwinter_icon:Class;
>
> [Embed("assets/img5.jpeg")]
> private var wow_icon:Class;
>
> [Bindable]
> private var cartContents:ArrayCollection = new
> ArrayCollection() ;
>
> /*private function doDrag(event:MouseEvent):void
> {
> var img:Image = event.currentTarget as Image;
> var dragImg:Image = new Image();
> dragImg.source = img.source;
>
> var dsource:DragSource = new DragSource();
> dsource.addData(img, 'img');
>
> DragManager.doDrag(img, dsource , event, dragImg);
> }
>
> private function dragAccept(event:DragEvent):void
> {
> var dropTarget:Canvas = event.currentTarget as Canvas;
> DragManager.acceptDragDrop(dropTarget);
> }*/
>
> private function acceptIt(event:DragEvent):void
> {
> DragManager.acceptDragDrop(UIComponent(event.target));
> }
> private function performDrop(event:DragEvent):void
> {
> if(event.dragSource.hasFormat("items"))
> {
> var items:Array = event.dragSource.dataForFormat("items") as Array;
> trace(items[0].src);
> var img:Image = new Image()
> img.x=event.localX
> img.y=event.localY
> //Alert.show("valor de x: " + img.x + "\nValor de y: " + img.y);
>
> img.source=items[0].src
> img.addEventListener(MouseEvent.MOUSE_MOVE,dragIt);
> cvs.addChild(img);
> }
> else
> {
> event.dragInitiator.x=event.localX
> event.dragInitiator.y=event.localY
> }
>
> }
> private function dragIt(event:MouseEvent):void
> {
>
>
> var dragInitiator:Image = event.currentTarget as Image;
>
>
> var dragSource:DragSource = new DragSource();
>
>
>
> dragSource.addData(1, 'value');
>
>
> var dragProxy:Image = new Image();
> dragProxy.source = event.currentTarget.source;
>
> dragProxy.setActualSize(event.currentTarget.width,event.currentTarget.height)
>
>
>
> DragManager.doDrag(dragInitiator, dragSource, event, dragProxy);
>
> }
> ]]>
> </mx:Script>
> <mx:ApplicationControlBar width="796" height="66" x="10" y="56" >
> <mx:Image name="Bioshock" x="203" y="68"
> source="{bioshock_icon}" mouseDown="dragIt(event)" width="117"/>
> <mx:Image name="Crysis" x="373" y="68"
> source="{crysis_icon}" mouseDown="dragIt(event)" width="79"/>
> <mx:Image name="Halo" x="543" y="68"
> source="{halo_icon}" mouseDown="dragIt(event)" width="93"/>
> <mx:Image name="Neverwinter Nights" x="46" y="68"
> source="{neverwinter_icon}" mouseDown="dragIt(event)" width="96"/>
> <mx:Image name="World of Warcraft" x="707" y="68"
> source="{wow_icon}" mouseDown="dragIt(event)" width="252"/>
> </mx:ApplicationControlBar>
>
> <mx:Canvas id="cvs" x="10" y="130" width="796" height="614"
> backgroundColor="#c0c0c0" dragEnter="acceptIt(event)"
> dragDrop="performDrop(event)">
> </mx:Canvas>
> <mx:ApplicationControlBar x="10" y="10" width="796">
> <mx:Label text="Novo" width="71"/>
> <mx:Label text="Salvar" width="81"/>
> <mx:Label text="Buscar" width="81"/>
> <mx:Label text="Cancelar"/>
> </mx:ApplicationControlBar>
>
> </mx:Application>
>
>
> Agradeço desde já...
> >
_________________________________________________________________
Discover the new Windows Vista
http://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---