Comunidad de diseño web y desarrollo en internet online

menú con easing??!!

Citar            
MensajeEscrito el 29 Abr 2011 05:46 pm
hola!

en mi insesante lucha por complicarme la vida estoy metido en un rollo con un menú con efecto easing, quiero lograr algo como esto:

http://www.cristalab.com/tutoriales/menus-con-efecto-de-desplazamiento-flotante-en-flash-c52746l/#ultimo

la cuestión es que mi menú se debe mantener fijo...
entonces intenté algo con este otro tutorial que me gusta bastante por su sencillez:

http://www.cristalab.com/tutoriales/menu-con-efecto-de-easing-en-flash-c11l/

el gran pero es que no logro que los contenidos se muevan en Y...
estas son mis variantes al código:

b_btn.onRelease=function(){
clip_mc.x=-950, y=-660} // no funciona

b_btn.onRelease=function(){
clip_mc.x=-950; y=-660} // no funciona

b_btn.onRelease=function(){
clip_mc.x=-950; clip_mc.y=-660} // no funciona

alguien sabe qué sintáxis usar para que se mueva en Y... o no hay más remedio que usar el primer tutorial??

ojalá puedan ayudarme. saludos!!

Por raider33

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 30 Abr 2011 12:12 pm
Para el easing se usa una fórrmula que mueve un clip a una velocidad proporcional a la distancia al destino (llamemosle el algoritmo) Esto se aplica en un onEnterFrame. Y eso es todo.
Tu estás seteando un par de variables, no se que tiene que ver con el easing, lamentablemente no puedo leerme el tutorial, pero me encantaría que me lo explicaras con tus palabras

jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 May 2011 03:51 pm
Hola a todos y en especial a raider33.
Debo entender que tu problema es, que quieres que los botones del menú se mantrengan en el escenario cuando los movieclip se intercambien?.
El problema se soluciona creando los botones en una capa distinta y superior a la que utilizas para los movieClip.
Para trer los MovieClip al escenario crearia una función la que llamaría en cada botón:

Código ActionScript :

function traer (mc, posX, posY, vel) {
   mc.onEnterFrame = function () {
      mc._x += (posX - mc._x) / vel;
      mc._y += (posY - mc._y) / vel;
      if (mc._x == posX && mc._y == posY) {
         delete mc.onEnterFrame;
      }
   };
}
//

Asimismo otra función para devolverlos a su posición inicial al llamar al siguiente movieclip:

Código ActionScript :

function volver (a) {
   if (a == movi1_mc) {
      traer (a,x1,y1,5);
   } else if (a == movi2_mc) {
      traer (a,x2,y2,5);
   } else if (a == movi3_mc) {
      traer (a,x3,y3,5);
   } else if (a == movi4_mc) {
      traer (a,x4,y4,5);
   }
}

Previamente es necesario haber establecido la posición original de los movieClip:

Código ActionScript :

var x1:Number = movi1_mc._x;
var y1:Number = movi1_mc._y;
var x2:Number = movi2_mc._x;
var y2:Number = movi2_mc._y;
var x3:Number = movi3_mc._x;
var y3:Number = movi3_mc._y;
var x4:Number = movi4_mc._x;
var y4:Number = movi4_mc._x;

Declaramos la variable que recoge el movieClip que está en el escenario actualmente:

Código ActionScript :

var a:MovieClip;

Y finalmente definimos el comportamiento a los botones:

Código ActionScript :

btn1_mc.onRelease = function () {
   volver (a);
   traer (movi1_mc,0,0,5);
   a = movi1_mc;
};
//
btn2_mc.onRelease = function () {
   volver (a);
   traer (movi2_mc,0,0,5);
   a = movi2_mc;

};
//
btn3_mc.onRelease = function () {
   volver (a);
   traer (movi3_mc,0,0,5);
   a = movi3_mc;

};
//
btn4_mc.onRelease = function () {
   volver (a);
   traer (movi4_mc,0,0,5);
   a = movi4_mc;
};

El código completo para cuatro movieClip y consecuentemente cuatro botones, quedaría así:

Código ActionScript :

function traer (mc, posX, posY, vel) {
   mc.onEnterFrame = function () {
      mc._x += (posX - mc._x) / vel;
      mc._y += (posY - mc._y) / vel;
      if (mc._x == posX && mc._y == posY) {
         delete mc.onEnterFrame;
      }
   };
}
//
function volver (a) {
   if (a == movi1_mc) {
      traer (a,x1,y1,5);
   } else if (a == movi2_mc) {
      traer (a,x2,y2,5);
   } else if (a == movi3_mc) {
      traer (a,x3,y3,5);
   } else if (a == movi4_mc) {
      traer (a,x4,y4,5);
   }
}

//
var a:MovieClip;
//
//Posicion incial de los movieClip
var x1:Number = movi1_mc._x;
var y1:Number = movi1_mc._y;
var x2:Number = movi2_mc._x;
var y2:Number = movi2_mc._y;
var x3:Number = movi3_mc._x;
var y3:Number = movi3_mc._y;
var x4:Number = movi4_mc._x;
var y4:Number = movi4_mc._x;
//
btn1_mc.onRelease = function () {
   volver (a);
   traer (movi1_mc,0,0,5);
   a = movi1_mc;
};
//
btn2_mc.onRelease = function () {
   volver (a);
   traer (movi2_mc,0,0,5);
   a = movi2_mc;

};
//
btn3_mc.onRelease = function () {
   volver (a);
   traer (movi3_mc,0,0,5);
   a = movi3_mc;

};
//
btn4_mc.onRelease = function () {
   volver (a);
   traer (movi4_mc,0,0,5);
   a = movi4_mc;
};

Esto todo en el primer fotograma de la linea de tiempo principal.
Esta es mi versión de lo que yo entiendo que es tu problema, si no he acertado de pleno, espero que al menos algo de lo que expongo te pueda servir.
Saludos.

Por antonio_L

161 de clabLevel



Genero:Masculino  

de Linares

firefox
Citar            
MensajeEscrito el 02 May 2011 03:56 pm
Muy buena Antonio la respuesta. Sin embargo a primera vista veo mucha repetición en tu código, concretamente la fijación de las variables x e y para todos los mc y después los callbacks. ¿Sería posible acortar esos códigos usando un loop? Por ejemplo si tuviera 32 MovieClips debería escribir mucha cantidad de código.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 May 2011 05:15 pm
"...pero me encantaría que me lo explicaras con tus palabras"

hola mi estimado solisarg!!

te cae? soy un negado para los algoritmos y la programación, si intento explicártelo tal vez terminemos hechos pelotas... mejor, en cuanto tenga la solución lo posteo aquí

saludos y gracias por el interes para solucionar este show

Por raider33

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 May 2011 05:20 pm
hooola antonio_L !!!

yep, quiero mantener el menú fijo y que sean los movieclips los únicos que tengan movimiento para el cambio de "sección"
probaré el código que escribiste, espero hacero bien y pongo los resultados...

mil gracias!!

Por raider33

55 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 May 2011 09:52 pm
es mejor aprender y experimentar para poder aprender aqui el colega te facilito la tarea y si es mejor aplicar un for para evitar tanto codigo

Por joshuavw

Claber

306 de clabLevel



Genero:Masculino  

Juego, aprendo y programo

firefox
Citar            
MensajeEscrito el 02 May 2011 11:47 pm
hoola antonio_L!!

si ya me está funcionando, muchas gracias, pero no logro que el movi1 desaparesca cuando se llama a otro movie clip.

ya le dí coordenadas diferentes en la parte de //Posicion incial de los movieClip, y no me funciona, se desactiva el código o simplemente no se mueve :s

por el momento lo tengo solucionado con un parche que hace de fondo del resto de movie clips.

ve: http://www.mediafire.com/?tqos6630n0lpdts

sigo investigando..
saludos!!

Por raider33

55 de clabLevel



 

firefox

 

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