Comunidad de diseño web y desarrollo en internet online

Poner Punto de Registro aun Sprite creado con AS3

Citar            
MensajeEscrito el 27 Feb 2009 09:55 am
Como le aplico el punto de regidstroa a un Sprite o un MovieClip creado dunamicamente onRuntime
usando --> mc.graphics.drawRect(x, y, ancho,alto );

Ya que mi problema es que al aplicar le un scaleY y scaleX me los escalea hacia la punta izquerda superior y no lo toma como si estubiera en el centro
NOTA: este problema ya lo solucione en AS2 poniedo los puntos x e y negativos dejando el 0,0 en el centro
Pero en AS3 no los toma.

Alguien sabe de algo


Código :

private function makeBox(mc:Sprite,alfa:Number,color:uint,ancho:int,alto:int,line:uint,_x:int,_y:int):void {
         mc.graphics.clear();
         mc.graphics.lineStyle(line, 0xFFFFFF);
         mc.graphics.beginFill(color); 
         mc.graphics.drawRect(-81, -104, ancho,alto ); //<< -- aqui le doy los puntos x e y directos pero tampoco los toma
         mc.graphics.endFill();
         mc.alpha = alfa;
      }//makeBox


Aqui los animo

Código :

private function tweenerScaleY(Clip:Sprite):void {
         varAnimationTweener  = new Tween(Clip,"scaleY",Bounce.easeOut, Clip.scaleY,  _scaleY,  1, true);//Bounce.easeOut er brugt til Bredal NO BORRAR.
      }//tweenerText
      private function tweenerScaleX(Clip:Sprite):void {
          varAnimationTweener = new Tween(Clip,"scaleX",Bounce.easeOut, Clip.scaleX,    _scaleX,  1, true);//Bounce.easeOut er brugt til Bredal NO BORRAR.
      }//tweenerText


Pero los escalea hacia la punta superior izquerda (como dije antes)

Saludos y gracias

Por pulento

48 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Feb 2009 11:27 am
Debes usar la propiedad transform.matrix de nuestro DisplayObject.
p.e., para que el centro del rectángulo esté en el centro, podemos escribir

Código ActionScript :

private function makeBox(mc:Sprite,alfa:Number,color:uint,ancho:int,alto:int,line:uint,_x:int,_y:int):void {
        //creamos una matriz y desplazamos el offset a ancho/2 y alto/2
         var matrix:Matrix = new Matrix(1, 0, 0, 1, ancho/2,alto/2);
        //le decimos que la propiedad transform.matrix de nuestro MC es esa matriz
         mc.transform.matrix = matrix;

         mc.graphics.clear();
         mc.graphics.lineStyle(line, 0xFFFFFF);
         mc.graphics.beginFill(color); 
         mc.graphics.drawRect(-ancho/2, -alto/2, ancho,alto ); 
         mc.graphics.endFill();
         mc.alpha = alfa;
}

Hay mucho sobre las matrices de transformación esas, Lo puedes ver en la Pagina de Adobe

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Feb 2009 04:54 pm
lo probe ..funciona muy bien Gracias..!!! :D

Por pulento

48 de clabLevel



 

msie7
Citar            
MensajeEscrito el 13 Abr 2009 04:41 am
hola
ESTUVE VIENDO LA RESPUESTA Y TRATE DE REPLICARLA PERO NO LO LOGRE
mira tengo un uiloader y quiero camabiarle el punto de registro de esta misma manera, es decir pasarlo de la esquina superior derecha a el centro me podrias ayudar?? muchas gracias

Por luisca85

26 de clabLevel



 

firefox

 

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