Comunidad de diseño web y desarrollo en internet online

Probablemente sea una chorrada, pero no sé hacerlo :(

Citar            
MensajeEscrito el 22 May 2012 01:25 pm
Hola, ante todo gracias por leerme

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

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox
Citar            
MensajeEscrito el 22 May 2012 02:56 pm
¿Intentaste lo mas fácil? Me refiero a poner una máscara

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 25 May 2012 12:45 am
Qué vergüenza, por Dios
Pues no, que no lo intenté
Gracias por perder tu tiempo conmigo :)

Por TheMagoZero

41 de clabLevel



 

Ingeniero Técnico Industrial

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.