feira como pp. atar o que vc conseguiu fazer...? eu ainda nao entendi o q vc 
dizer....

Enviado via iPad

Em 22/08/2011, às 21:33, Mário Júnior <[email protected]> escreveu:

> Acabei de testar o seu código aqui e funciona sim. Só tive q fazer uma pqna 
> alteracao:
> applicationComplete = "init()"  :) ... nos exemplos q vc mandou vc nao 
> referencia o init em nenhum momento.
> 
> Outra coisa, nesse exemplo, vc precisa considerar a largura/altura do 
> componente q está sendo arrastado em relação o x,y do startDrag, isso para q 
> o seu componente "nao estoure" os limites da área, pois a constraint só 
> considera 'dentro da área' o ponto onde o mouse está dentro do seu componente.
> 
> E, por final, vc também precisa considerar a posição do seu canvas em relação 
> ao stage. Pesquise pelos métodos "globalToLocal" e "localToGlobal" para q vc 
> pegue o x,y do seu canvas em relação a posição global do stage.
> 
> 
> Agora, como eu disse no primeiro e-mail, talvez acho q seja melhor vc 
> trabalhar com a classe DragManager.. é muito fácil trabalhar com ela, ale'm 
> dq esse tipo de operação (validar e restringir área de drop) é uma baba.. 
> veja o exemplo desse link (Example: Simple drag-and-drop operation for a 
> nonlist-based control):
> 
> http://help.adobe.com/en_US/Flex/4.0/UsingSDK/WS2db454920e96a9e51e63e3d11c0bf69084-7cfe.html#WS2db454920e96a9e51e63e3d11c0bf64595-7ff4
> 
> 
> []'s
> 
> 
> 
> 
> 
> 2011/8/22 Principe borodin <[email protected]>
> o canvas continua dando barra de rolagem...
> 
> On Aug 22, 12:56 pm, Principe borodin <[email protected]>
> wrote:
> > deu certo nao
> >
> > nem assim...
> > <?xml version="1.0" encoding="utf-8"?>
> > <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009";
> >                                            
> > xmlns:s="library://ns.adobe.com/flex/spark"
> >                                            
> > xmlns:mx="library://ns.adobe.com/flex/mx" width="700"
> > height="600">
> >         <fx:Declarations>
> >                 <!-- Place non-visual elements (e.g., services, value 
> > objects) here
> > -->
> >         </fx:Declarations>
> >         <fx:Script>
> >                 <![CDATA[
> >
> >                         import mx.events.DragEvent;
> >                         import flash.geom.Rectangle;
> >                         private var area:Rectangle= new
> > Rectangle(canvas.x,canvas.y,canvas.width,canvas.height);;
> >                         private function init():void
> >                         {
> >                                 area = new
> > Rectangle(canvas.x,canvas.y,canvas.width,canvas.height);
> >                                 
> > campo.addEventListener(MouseEvent.MOUSE_DOWN,sd);
> >                                 
> > campo.addEventListener(MouseEvent.MOUSE_UP,sot);
> >                         }
> >                         private function sd(event:MouseEvent):void
> >                         {
> >                                 event.currentTarget.startDrag(false,area);
> >                         }
> >                         private function sot(event:MouseEvent):void
> >                         {
> >                                 event.currentTarget.stopDrag();
> >                         }
> >                 ]]>
> >         </fx:Script>
> >         <mx:Canvas id="canvas" x="20" y="20" width="500" height="400">
> >                 <s:TextInput id="campo" x="20" y="20"/>
> >         </mx:Canvas>
> > </s:WindowedApplication>
> >
> > e nem assim...
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009";
> >                                            
> > xmlns:s="library://ns.adobe.com/flex/spark"
> >                                            
> > xmlns:mx="library://ns.adobe.com/flex/mx" width="700"
> > height="600">
> >         <fx:Declarations>
> >                 <!-- Place non-visual elements (e.g., services, value 
> > objects) here
> > -->
> >         </fx:Declarations>
> >         <fx:Script>
> >                 <![CDATA[
> >
> >                         import flash.geom.Rectangle;
> >                         import mx.events.DragEvent;
> >                         private var area:Rectangle;
> >                         private function init():void
> >                         {
> >                                 area = new
> > Rectangle(canvas.x,canvas.y,canvas.width,canvas.height);
> >                                 
> > campo.addEventListener(MouseEvent.MOUSE_DOWN,sd);
> >                                 
> > campo.addEventListener(MouseEvent.MOUSE_UP,sot);
> >                         }
> >                         private function sd(event:MouseEvent):void
> >                         {
> >                                 event.currentTarget.startDrag(false,area);
> >                         }
> >                         private function sot(event:MouseEvent):void
> >                         {
> >                                 event.currentTarget.stopDrag();
> >                         }
> >                 ]]>
> >         </fx:Script>
> >         <mx:Canvas id="canvas" x="20" y="20" width="500" height="400">
> >                 <s:TextInput id="campo" x="20" y="20"/>
> >         </mx:Canvas>
> > </s:WindowedApplication>
> >
> > On Aug 22, 12:15 pm, Mário Júnior <[email protected]> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > startDrag()method
> > > public function
> > > startDrag(lockCenter:Boolean<http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Bo...>
> > > =
> > > false, 
> > > bounds:Rectangle<http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...>
> > > =
> > > null):void<http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/sp...>
> > > Parameters
> > > lockCenter:Boolean<http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Bo...>
> > > (default
> > > = false) — Specifies whether the draggable sprite is locked to the center 
> > > of
> > > the pointer position (true), or locked to the point where the user first
> > > clicked the sprite (false).
> > > bounds:Rectangle<http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...>
> > > (default
> > > = null) — Value relative to the coordinates of the Sprite's parent that
> > > specify a constraint rectangle for the Sprite.
> >
> > > Oq vc precisará fazer é usar o parametro *bounds:Rectangle*.
> >
> > >  var areaRestrita:Rectangle = new Rectangle(seuCanvas.x, seuCanva.y,
> > > seucanvas.w, seucanvas.h);
> > >  seuElemento.startDrag(false, areaRestrita);
> >
> > > Pronto! Só ler a documentação.
> >
> > > []'s
> >
> > > Em 22 de agosto de 2011 12:00, Principe borodin
> > > <[email protected]>escreveu:
> >
> > > > nao entendi bem o q vc kis dizer nao
> >
> > > >http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl...
> >
> > > > ate procurei na documentacao e nao achei nada no caso estou usando um
> > > > canvas pra limitar o espaço de "trabalho" do usuario...
> >
> > > > On Aug 21, 10:19 pm, Mário Júnior <[email protected]> wrote:
> > > > > No próprio método startDrag vc pode passar um Rectangle como argumento
> > > > para
> > > > > determinar a área de constraints.
> > > > > Consulte a documentação oficial desse método q vc achará até código de
> > > > > exemplo.
> >
> > > > > Lembrando q 'startDrag()' e 'stopDrag()' sao herdados do Flash. Outra
> > > > forma
> > > > > (e talvez até melhor, se pretende usar validações) é usar a classe
> > > > > DragManager do Flex SDK.
> >
> > > > > []'s
> >
> > > > > Em 21 de agosto de 2011 21:37, Principe borodin
> > > > > <[email protected]>escreveu:
> >
> > > > > > Eu to querendo criar uma aplicacao onde eu possa usar determinados
> > > > > > objetos dentro de um canvas...mas ele nao pode sair do canvas, pois 
> > > > > > ao
> > > > > > lado tera uma "paleta" de ferramentas....eu tentei algo bem simples
> > > > > > mas nao foi...
> >
> > > > > > <?xml version="1.0" encoding="utf-8"?>
> > > > > > <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009";
> > > > > >                                           xmlns:s="library://
> > > > > > ns.adobe.com/flex/spark"
> > > > > >                                           xmlns:mx="library://
> > > > > > ns.adobe.com/flex/mx"
> > > > > >                                           width="1000" height="600"
> > > > > > creationComplete="init()">
> > > > > >        <fx:Script>
> > > > > >                <![CDATA[
> > > > > >                        import mx.events.DragEvent;
> > > > > >                        import mx.controls.Alert;
> > > > > >                        protected function
> > > > > > campo_dragStartHandler(event:DragEvent):void
> > > > > >                        {
> > > > > >                                // TODO Auto-generated method stub
> >
> > > > > >                        }
> > > > > >                        private function init():void
> > > > > >                        {
> >
> > > > > >  campo.addEventListener(MouseEvent.MOUSE_DOWN,sg);
> >
> > > > > >  campo.addEventListener(MouseEvent.MOUSE_UP,sgu);
> > > > > >                        }
> > > > > >                        private function sg(event:MouseEvent):void
> > > > > >                        {
> > > > > >                                //Alert.show(event.currentTarget.y);
> > > > > >                                var tam:int = 
> > > > > > event.currentTarget.width
> > > > +
> > > > > > event.currentTarget.x;
> >
> > > > > >                        if(campo.hitTestObject(canvas))
> > > > > >                        {
> > > > > >                                event.currentTarget.startDrag();
> > > > > >                        }
> > > > > >                        }
> > > > > >                        private function sgu(event:MouseEvent):void
> > > > > >                        {
> >
> > > > > >  //Alert.show(event.currentTarget.width+event.currentTarget.x);
> > > > > >                        event.currentTarget.stopDrag();
> > > > > >                        }
> >
> > > > > >                ]]>
> > > > > >        </fx:Script>
> > > > > >        <fx:Declarations>
> > > > > >                <!-- Place non-visual elements (e.g., services, value
> > > > > > objects) here
> > > > > > -->
> > > > > >        </fx:Declarations>
> > > > > > <mx:Canvas x="20" y="20"  id="canvas" borderVisible="true"
> > > > > > borderColor="0x000000" width="700" height="500" >
> > > > > >        <s:TextInput  id="campo"/>
> > > > > > </mx:Canvas>
> > > > > > </s:WindowedApplication>
> >
> > > > > > --
> > > > > > 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 
> > > > > > emhttp://groups.google.com/group/flexdev
> >
> > > > > --
> > > > > Mario Juniorhttp://blog.mariojunior.com/
> > > > > @mariojunior
> >
> > > > --
> > > > 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 emhttp://groups.google.com/group/flexdev
> >
> > > --
> > > Mario Juniorhttp://blog.mariojunior.com/
> > > @mariojunior
> 
> --
> 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
> 
> 
> 
> -- 
> Mario Junior
> http://blog.mariojunior.com/
> @mariojunior
> -- 
> 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

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