Comunidad de diseño web y desarrollo en internet online

Otro problema con Tween

Citar            
MensajeEscrito el 24 Sep 2011 03:24 am
Buenas noches a todo, esta vez tengo otro error, espero me entiendan lo que voy a detallarles.
Cree un mc con nombre de instancia "barra_mc", y escribi el siguiente codigo:

Código ActionScript :

import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.Regular;

var posOrig:Number = barra_mc.x;
var tamOrig:Number = barra_mc.height;
barra_mc.buttonMode = true;

barra_mc.addEventListener(MouseEvent.ROLL_OVER, salir);
barra_mc.addEventListener(MouseEvent.ROLL_OUT, entrar);
barra_mc.addEventListener(MouseEvent.MOUSE_DOWN, expandir);

function salir(evt:MouseEvent):void
{
   salirBarra();
}
function entrar(evt:MouseEvent):void
{
   if (barra_mc.height == tamOrig && barra_mc.x > posOrig)
   {
      entrarBarra();
   }   
}
function expandir(evt:MouseEvent):void
{
   expandirBarra();
}
function salirBarra():void
{
   var salirMC:Tween = new Tween(barra_mc, "x", Regular.easeOut, barra_mc.x, barra_mc.width/2, 1, true);
}
function entrarBarra():void
{
   var entrarMC:Tween = new Tween(barra_mc, "x", Regular.easeOut, barra_mc.x, posOrig, 1, true);
}
function expandirBarra():void
{
   if (barra_mc.x == barra_mc.width/2)
   {
      var expandirMC:Tween = new Tween(barra_mc, "height", Regular.easeOut, barra_mc.height, 200, 1, true);
   }
   if (barra_mc.height == 200)
   {
      var reducirMC:Tween = new Tween(barra_mc, "height", Regular.easeOut, barra_mc.height, tamOrig, 1, true);
   }
}


y lo que queria conseguir con este codigo era que se metiera la barra pero cuando obtiene su tamaño original y en la posicion de salida de la barra, pero cuando hago click en el mc para que se redujera a su tamaño original y seguidamente saco el cursor del mc , supuestamente deberia meterse la barra apenas toma su tamaño original pero con el cursor fuera, pero lo que sucede es que tengo que pasar otra ves el cursor y sacarlo de la barra para que se metiera, si no me he explicado bien o no queda claro escribanme, pero ese es el problema que me tiene con dolor de cabeza.

Por NeoXperT

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Sep 2011 03:28 am
a lo olvidava el punto de registro del mc lo tengo en el medio, y la barra (el tamaño lo pueden variar en caso de que lo probaran en flash pero que el alto sea menor a 100) se encuentra en la mitad del stage fuera del escenario casi las 3/4 partes del mc en la parte izuierda.

Por NeoXperT

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2011 01:52 am
Dicho sea de paso, habra alguna forma de agregar contenido, como un formulario a la "barra_mc" en su estado expandido?? con un aspa que sea para cerrar el mc y volverlo a su estado original.

Por NeoXperT

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2011 07:33 am
Recomendación: En vez de usar el Tween que trae Flash usa TweenMax, es más rápido.

Por juanfher

74 de clabLevel



 

firefox
Citar            
MensajeEscrito el 26 Sep 2011 10:33 pm
Gracias por responder amigo, pero en que me beneficiaria, te refieres que es mas rapido por que es facil de programas y me tarde menos tiempo, o por que las animaciones en Tween son mas rapidas, por que en si lo que deseo es solucionar el problema que detalle anteriormente, en todo caso si es que no hay posibilidad tendre que buscar otra alternativa no?? y solamente quiero saber tambien si es que se podria agregar contenido como un formulario cuando esta mi barra desplegada y expandida.

Mejor dicho lo que quiero conseguir con todo esto es que cuando señale una pestañita que sale en el lado izquierdo, esta se despliegue horizontalmente y diga por ejemplo "noticias del dia" y al hacer click es barra se haga mas grande mostrando en la barra con su nuevo tamaño el contenido de las noticias, y cuando quiero cerrar simplemente hago click en el titulo y vuelva a su tamaño original y regrese a su estado como una pestaña.

Me explique bien???

La verdad soy muy nuevo en programacion AS3

Por NeoXperT

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Oct 2011 04:26 am
Estuve viendo tu codigo y le hice una pekenia modificacion,,, veras q deje 2 traces en expandirbarra,,, veras q dan resultados distintos,,,, tenes q mejorar la manera en q t das cuenta si esta chico o grande.

Código ActionScript :

import flash.events.MouseEvent; 
import fl.transitions.Tween; 
import fl.transitions.easing.Regular; 
 
var posOrig:Number = barra_mc.x; 
var tamOrig:Number = barra_mc.height; 
barra_mc.buttonMode = true; 
 
barra_mc.addEventListener(MouseEvent.ROLL_OVER, salir); 
barra_mc.addEventListener(MouseEvent.ROLL_OUT, entrar); 
barra_mc.addEventListener(MouseEvent.MOUSE_DOWN, expandir); 
 
function salir(evt:MouseEvent):void 
{ 
   salirBarra(); 
} 
function entrar(evt:MouseEvent):void 
{ 
   if (barra_mc.height == tamOrig && barra_mc.x > posOrig) 
   { 
      entrarBarra(); 
   }    
} 
function expandir(evt:MouseEvent):void 
{ 
   expandirBarra(); 
} 
function salirBarra():void 
{ 
   var salirMC:Tween = new Tween(barra_mc, "x", Regular.easeOut, barra_mc.x, barra_mc.width/2, 1, true); 
} 
function entrarBarra():void 
{ 
   var entrarMC:Tween = new Tween(barra_mc, "x", Regular.easeOut, barra_mc.x, posOrig, 1, true); 
} 
function expandirBarra():void 
{ 
   
   if (barra_mc.height == 200) 
   { 
      var reducirMC:Tween = new Tween(barra_mc, "height", Regular.easeOut, barra_mc.height, tamOrig, 1, true )
   } else{
      trace(barra_mc.x);
     trace(barra_mc.width/2);
     if (barra_mc.x <= barra_mc.width/2) 
   { 
      var expandirMC:Tween = new Tween(barra_mc, "height", Regular.easeOut, barra_mc.height, 200, 1, true); 
   } }
   
}
/**/

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 05 Oct 2011 02:27 pm
Gracias amigo pr responder solo una duda me queda, se puede agragar contenido a mi grafico despues de haber ocurrido la funcion expandirBarra?

Por NeoXperT

18 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Oct 2011 02:50 pm
Claro q se puede, tenes q agregar un listener a expandierMC que t avise cuando termino la animacion.

Código ActionScript :


import fl.transitions.TweenEvent;
expandirMC.addEventListener(TweenEvent.MOTION_FINISH, handlerAddContent);
/**/


bueno amigo t deseo exito!!

eze

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 05 Oct 2011 03:25 pm
gracias amigo, lo que pasa es que estoy haciendo un proyecto totalmente en as3 y no quiero incluir lenguaje de linea de tiempo.
espero vernos en lima el 28 y 29 de octubre.

Por NeoXperT

18 de clabLevel



 

firefox

 

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