Estoy realizando una especie de contenedor de objetos.
Cuando hago drag a uno de ellos, me interesaría que el objeto desplazado (azul), al salir de los límites del contenedor (celeste), no se viese fuera de los mismos
¿cómo lo hago?
Muchas gracias
Captura:
[img]http://l4c.me/fotos/TheMagoZero/captura1[/img]
El "tonto"-código que he desarrollado es:
Una clase panel que se asigna a un objeto "miPanel"
Una clase Cuadrito que se asigna a "c"
Una clase circulito que se asigna a "ci"
circulito se inserta como hijo de c, y este a su vez como hijo de miPanel.
Código ActionScript :
import flash.geom.Rectangle; var keyPressed:uint; var miPanel:Panel=new Panel miPanel.name="miPanel" miPanel.x=10; miPanel.y=10; addChild(miPanel); var c:Cuadrito=new Cuadrito; c.name="cuadro"; c.x=miPanel.width/2; c.y=miPanel.height/2; miPanel.addChild(c); var ci:Circulito=new Circulito; c.addChild(ci); //Saber qué tecla he pulsado, para efectos de zoom y pan stage.addEventListener(KeyboardEvent.KEY_DOWN, teclaPulsada) stage.addEventListener(KeyboardEvent.KEY_UP , teclaLiberada) c.addEventListener(MouseEvent.MOUSE_WHEEL, c_MouseWheel); c.addEventListener(MouseEvent.MOUSE_DOWN, c_MouseDown); c.addEventListener(MouseEvent.MOUSE_UP, c_MouseUp); //c.addEventListener(MouseEvent.MOUSE_MOVE, c_MouseMove); function c_MouseDown(event:MouseEvent):void { //var rectanguloDrag:Rectangle=new Rectangle(miPanel.x,miPanel.y,miPanel.width-miPanel.x-c.width,miPanel.height-miPanel.y-c.height); c.startDrag(false) } function c_MouseUp(event:MouseEvent):void { c.stopDrag() } function c_MouseWheel(event:MouseEvent):void { var antiguoMouseX:Number=mouseX; var antiguoMouseY:Number=mouseY; if (keyPressed==17) { if (event.delta > 0 ) { c.scaleX=1.1*c.scaleX c.scaleY=1.1*c.scaleY } else { c.scaleX=0.9*c.scaleX c.scaleY=0.9*c.scaleY } } } //Si tengo pulsada una tecla, capturarla. Se llama desde los eventos del mouse function teclaPulsada(event:KeyboardEvent):void { keyPressed=event.keyCode; } //Si libero tecla, capturarla. Se llama desde los eventos del mouse function teclaLiberada(event:KeyboardEvent):void { keyPressed=0; }