Comunidad de diseño web y desarrollo en internet online

Dragging MovieClip Proporcionalmente?

Citar            
MensajeEscrito el 26 Ago 2010 05:30 pm
Hola,

estoy intentado crear un codigo para que el usuario pueda cambiar el tamaño de un movieClip por medio de un "handler" y mâs o menos lo logré, pero como hago para restringir el tamaño? para que cuando muevo el "handler" respete las proporciones de mi movieClip?

Aqui esta mi côdigo, hay un movieClip en el stage que se llama "block" y otro mas pequeño abajo a la izquierda del movieclip que se llama "reSizer".

Código ActionScript :

var blockWidth:Number;
var newWidth:Number;
var blockHeight:Number;
var newHeight:Number;

function reSize(e:Event):void
{
   

   
      if (mouseX > block.x + 20)
      {
         newWidth = reSizer.x;
         blockWidth = newWidth - block.x;
         block.width = blockWidth;
      }
      if (mouseY > block.y + 20)
      {
         newHeight = reSizer.y;
         blockHeight = newHeight - block.y;
         block.height = blockHeight;
      }
      if (mouseX < block.x + 20)
      {
         reSizer.x = block.x + 21;
      }
      if (mouseY < block.y + 20)
      {
         reSizer.y = block.y + 21;
      }
      
      
      
}

function onResizerDown(e:MouseEvent):void
{
   
   addEventListener(Event.ENTER_FRAME, reSize);
   e.target.startDrag();
}

function onResizerUp(e:MouseEvent):void
{
   

   removeEventListener(Event.ENTER_FRAME, reSize);
   e.target.stopDrag();
}

reSizer.addEventListener(MouseEvent.MOUSE_DOWN, onResizerDown);
reSizer.addEventListener(MouseEvent.MOUSE_UP, onResizerUp);





Gracias por la ayuda,

Rodrigo

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox
Citar            
MensajeEscrito el 27 Ago 2010 05:01 am
Si tu conoces la proporcion entre el ancho y el alto de tu movieclip solo calcula una de estas 2 propiedades, por ejemplo si el ancho de tu movieclip es el doble que el alto, calculas el nuevo ancho solamente y el alto sera la mitad:

Código ActionScript :

function reSize(e:Event):void 
{ 
    
 
    
      if (mouseX > block.x + 20) 
      { 
         newWidth = reSizer.x; 
         blockWidth = newWidth - block.x; 
         block.width = blockWidth; 
   block.height = blockWidth/2;
      } else if (mouseY > block.y + 20) 
      { 
         newHeight = reSizer.y; 
         blockHeight = newHeight - block.y; 
         block.height = blockHeight; 
    block.width = blockHeight*2;
      } 
      if (mouseX < block.x + 20) 
      { 
         reSizer.x = block.x + 21; 
      } 
      if (mouseY < block.y + 20) 
      { 
         reSizer.y = block.y + 21; 
      } 
       
       
       
} 


Con el else if solo calculas una de las propiedades a la vez y la otra la seteas respetando la proporcion.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Ago 2010 04:46 pm
gracias, buena idea! :D

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

firefox

 

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