Pessoal
Estou tentando fazer um drag/drop de um dataGrid -> Canvas

De acordo com o exemplo na pg da adobe

http://livedocs.adobe.com/flex/3/html/help.html?content=dragdrop_8.html

Adicionei os 3 eventos no canvas:
                           dragEnter="dragEnterHandler(event);"
                           dragOver="dragOverHandler(event);"
                           dragDrop="dragDropHandler(event);"

mas não está dando certo.....

meu código está assim:
//--------------------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml";
                                xmlns:ns1="*"
                                xmlns:mxml="http://www.sephiroth.it/2006/mxml";
                                minWidth="955" minHeight="600" 
backgroundColor="#E0E5E7"
layout="absolute">

        <mx:Script>
                <![CDATA[
                        import mx.collections.ArrayCollection;
                        import mx.managers.DragManager;
                        import mx.core.DragSource;
                        import mx.events.DragEvent;
                        import flash.events.MouseEvent;
                        import mx.controls.Image;

                        [Bindable]
                        private var ob:ArrayCollection = new ArrayCollection([
                                {nome: 'img1', end: 'swf/img01.png' },
                                {nome: 'img2', end: 'swf/img02.png' }

                        ]);

                        private function dragEnterHandler(event:DragEvent):void 
{
                                if (event.dragSource.hasFormat("img")){

                                        
DragManager.acceptDragDrop(Canvas(event.currentTarget));
                                }
                        }

                        private function dragOverHandler(event:DragEvent):void
                        {
                                if (event.dragSource.hasFormat("img")) {
                                        if (event.ctrlKey) {
                                                
DragManager.showFeedback(DragManager.COPY);
                                                return;
                                        }
                                        else {
                                                
DragManager.showFeedback(DragManager.MOVE);
                                                return;
                                        }
                                }

                                DragManager.showFeedback(DragManager.NONE);
                        }
                        private function dragDropHandler(event:DragEvent):void {
                                if (event.dragSource.hasFormat("img")) {
                                        var draggedImage:Image =
                                                
event.dragSource.dataForFormat('img') as Image;

                                        var dropCanvas:Canvas = 
event.currentTarget as Canvas;

                                        var newImage:Image=new Image();
                                        newImage.source = draggedImage.source;
                                        newImage.x = dropCanvas.mouseX;
                                        newImage.y = dropCanvas.mouseY;
                                        dropCanvas.addChild(newImage);
                                }
                        }

                ]]>
        </mx:Script>

                        <mx:DataGrid id="datagrid"
                                                 x="10" y="19"
                                                 allowMultipleSelection="true"
                                                 dataProvider="{ob}"
                                                 dragEnabled="true"
                                                 rowHeight="100" height="488">

                                <mx:itemRenderer>
                                        <mx:Component>

                                                <mx:Image source="{data.end}"/>
                                        </mx:Component>
                                </mx:itemRenderer>

                        </mx:DataGrid>

        <mx:Canvas id="meuCanvas"
                           x="246" y="198"
                           width="445" height="200"
                           borderStyle="solid"
                           dragEnter="dragEnterHandler(event);"
                           dragOver="dragOverHandler(event);"
                           dragDrop="dragDropHandler(event);"
                           >

        </mx:Canvas>
</mx:Application>
//---------------------------------------------------------------------------------------------------------------------------------------

achei esse exemplo da gabriela
http://www.gabriela.trindade.nom.br/arquivos/car/srcview/index.html
mas ela usa umas tags que eu não reconheço (<results:ResultsBox
id="rb"/> , <features:FeatureList/>)

basicamente a duvida é: como fazer o canvas aceitar o elemento do
datagrid ?
(futuramente vou querer aplicar a lib transform tool do site senocular
no objeto criado)

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a