Comunidad de diseño web y desarrollo en internet online

menú especial!

Citar            
MensajeEscrito el 03 Sep 2009 08:52 am
Hola!

Necesito ayuda!

Primero mirad esto: http://www.gigasize.com/get.php?d=olzyqzmx20c

Supuestamente es un menú, y quiero q al pinchar en cualquiera de las fotos, aparezca ese efecto, es decir, q todas se retiren hacia la izquierda, dejando el espacio libre para que aparezca el contenido de la sección que hayamos pinchado, por tanto, cada foto va a cargar un contenido diferente. He probado varias cosas, pero no lo consigo. Si hago q cada foto sea un botón de los q ya vienen hechos, al pinchar en uno de ellos habiendo usado variables globales:
on(release){
_root.efecto.gotoAndPlay(2);
_global.peli = 1;
}
aparece el efecto pero los botones siguen estando ahí, el resultado es tener los cuatro en pequeño y en vertical a la izquierda, y los cuatro en grande y en horizontal. (Lo podéis descargar auí: http://www.gigasize.com/get.php?d=swrmlzqlgsb )

Si lo hago como botones de movie clip, consigo lo q quiero pero no sé cómo hacer para q cada imagen carge una sección diferente. (Lo podéis ver aquí: http://www.gigasize.com/get.php?d=rmo4fjxpmmb )

Si alguien pudiera ayudarme, se lo agradecería.

Un beso!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2009 10:11 am
Yo crearía el movimiento con actionscript, ya que te quedará un efecto muy chulo si utilizas por ejemplo la librería tweenMax.

Codigo en as3:
debes meter la carpeta gs de TweenMax en el mismo sitio de tu .fla (ojo! que el TwennMax dea para as3)

Primero importar la clase:

Código :

import gs.TweenMax; 
import gs.easing.*;


Crearía primero las funciones que te haga el movimiento de los clip:

Código :

function movimientoclip1 (event:MouseEvent):void{
TweenMax.to(tuclip, 2, {bezier:[{x:74, y:347}, {x:300, y:345}], orientToBezier:true, ease:Sine.easeOut});
}
function movimientoclip2 (event:MouseEvent):void{
TweenMax.to(tuclip, 2, {bezier:[{x:74, y:347}, {x:300, y:345}], orientToBezier:true, ease:Sine.easeOut});
}


Tendras que cambiar las coordenadas de los puntos "{x:74, y:347}, {x:300, y:345}" para que quede como tu quieras.

Tras esto haces las declaraciones para que haga el movimiento al hacer clic

Código :


tuclip1.addEventListener (MouseEvent.CLICK, movimientoclip1)
tuclip2.addEventListener (MouseEvent.CLICK, movimientoclip2)




Tambien está esta librería para as2 es prácticamente igual, creas las funciones y luego las llamas así:

Código :

function tufuncion (){
TweenMax.to(mc, 3, {bezier:[{_x:107, _y:334}, {_x:300, _y:345}], orientToBezier:true, ease:Bounce.easeOut});
}


y declaras en el fotograma:

Código :

tuclip.onRelease = tufuncion


o declaras en el clip así:

Código :

on(release){
tufuncion ();
}

Por Dester

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2009 12:08 pm
Hola!!

Muchas gracias por tu respuesta!

La verdad es q no lo entiendo muy bien porque no sé lo q es una librería y no sé dónde tengo q poner cada código...

Por otra parte, con lo q me dices, al pinchar sobre uno de los clip, se moverían los dos?? Y para q al pinchar en cada uno se cargue ahí otra peli, ¡q tendría q hacer?

Mil gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2009 03:08 pm

Por Dester

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2009 03:21 pm
Es exactamente eso lo q quiero!!! (aunq no sé si es posible q cada botón cargue un contenido diferente...)

Quizás sea mucho pedir...pero ¿¿¿podrías pasarme el archivo .fla con lo q has hecho???, si es q no, no te preocupes, lo comprendo...

Mil gracias por tu interés!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 03 Sep 2009 05:15 pm
La idea es que aprendas a hacerlo por ti mismo :wink:

Te dejo el código en as3 para hacer funcionar un botón:

Código ActionScript :

/* con esto importas la libreria TweenMax */
import gs.TweenMax; 
import gs.easing.*;

//-------------Funciones-----------\\ 
/* con esto creas una función con el movimiento del primer click del botón */
function movimientoinicialboton1 (event:MouseEvent):void{
   if (boton1.x == 211.95){ /* 211.95 el la posición "x" de tu botón en la película,
variará dependiendo donde coloques tu botón por lo que deberás hacer coincidir esta cifra */
   TweenMax.to(boton1, 1.2, {bezier:[{x:100, y:150}, {x:50, y:52}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
   TweenMax.to(clipdelcontenido1, 1, {delay:1, alpha:1});
   }
};
/* con esto de abajo haces que cuando los botones son pequeños abran un contenido diferente,
 aunque no tiene funcionalidad si no metes otro boton y otro contenido */
function boton1 (event:MouseEvent):void{
   if (boton1.x==50){ /* igual que antes este valor a de coincidir con el valor de "x" de la función anterior,
 fijate en {x:50, y:52}] */
      if(mc4.alpha == 1){
      TweenMax.to(contenido2, 1, {alpha:0}); /* haces desaparecer el contenido que se está viendo */
      TweenMax.to(contenido1, 1, {delay:1, alpha:1}); /* y con este haces que aparezca el contenido que corresponda a ese botón */
      }
   }
}

//-------------Declaraciones---------\\ 
/* con esto llamas a la función al hacer click en el mc */

mc1.addEventListener (MouseEvent.CLICK, movimientoinicialboton1);
mc1.addEventListener (MouseEvent.CLICK, boton1);

mc1.buttonMode= true /* con esto haces que salga la manita al pasar por encima */


Este código tienes que ponerlo en el primer fotograma.
Deverás repetir este código para los otros botones.

Espero que te sirva y consigas dar con ello :wink: aunque esta no es la única y ni mucho menos la mejor forma de hacerlo, échale imaginación :D .

Por Dester

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Sep 2009 08:55 pm
Hola de nuevo!!

Muchas gracias!!

Tienes razón con lo de aprender, simplemente te lo pedía por comodidad...pero te agradezco el q me lo hayas vuelto a explicar.

Ahora me gustaría hacerte unas preguntillas...a ver, me has dicho q ese código lo tengo q poner en el primer fotograma, supongo q te refieres al fotograma del clip q hace de botón, ¿no? en ese caso, la imagen q es el botón en sí (en el ejemplo q tú has hecho sería el cuadro nego con la palabra "botón 1") lo pongo ¿en el segundo fotrograma o en el primero de otra capa dentro de ese mismo clip?

En cuanto a las posiciones x e y, ¿son las q tiene el botón dentro del clip o a las q tiene una vez puesto en el escenario?

Y por último y más importante...necesito Flash 9, ¿verdad? Yo tengo el 8...

Muchas gracias!

PD: soy chica!! jeje

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 04 Sep 2009 09:01 am
Hola de nuevo!
Primeramente necesitas flash 9, creo que existe una versión gratuita que puedes descargar de adobe, aunque lo ideal sería que te pasases a cs4 :wink: .

El código que te pongo tienes que ponerlo en el primer fotograma de tu película, no dentro de ningún mc. As3 ya no trabaja con declaraciones dentro de un clip, sino por clases (por el foro hay tutoriales explicativos sobre las clases) pero te lo he simplificado para que no tengas que trabajar con clases ni nada, simplemente copias y pegas este código en el primer fotograma de la película.

El "x" y el "y" son las coordenadas de tu mc en el escenario, es decir creas un mc, y lo cojes de la biblioteca y lo pones en el escenario, las cordenadas del mc te aparecen en el panel de propiedades.

Una cosa que se me olvidó decirte es que el mc del contenido debes ponerlo en el escenario y ponerlo en alpha 0, sino se te verá al iniciar la película, y lo que queremos es que aparezca invisible y al hacer click en el botón pase de alpha 0% a alpha 100%.

Donde he puesto "mc1" en las últimas declaraciones tendría que poner "boton1" que tiene que ser el nombre que le asignes a tu botón.

Espero servirte de ayuda :P.

Por Dester

8 de clabLevel



 

firefox
Citar            
MensajeEscrito el 04 Sep 2009 12:59 pm
Hola, muchas gracias por la información!!

Cuando tenga el Flash ya lo pruebo...

Me he decargado el Flas 10 de aquí http://get.adobe.com/es/flashplayer/?promoid=DRHWS, lo instalo, me dice q se ha instalado correctamente, pero el programa no lo encuentro por ningún lado...¿es necesario q elimine el 8 antes?

Gracias!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Sep 2009 01:10 pm
Olvida lo q puse antes...q lo q me bajé es el flash Player. Del 9 sólo encuentro versiones de prueba y del CS4 también. ¿Me podrías decir de dónde puedo bajarlo con licencia gratis?

Por cierto, ¿pasa algo si algunas partes de la página están hechas con as2 y otras con as3?

Un beso!!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Sep 2009 11:00 pm
Buenas!!

Por fin he probado lo q me dijiste...te comento:

Con el último código q me diste no me funciona nada...me dice q hay 4 problemas de compilador:

Sustitución no compatible

Código ActionScript :

function boton1 (event:MouseEvent):void{

Definición de función duplicada

Código ActionScript :

function boton1 (event:MouseEvent):void{

Sustitución no compatible

Código ActionScript :

function boton2 (event:MouseEvent):void{

Definición de función duplicada

Código ActionScript :

function boton2 (event:MouseEvent):void{


He probado a ver qué salía poniendo este código:

Código ActionScript :

import gs.TweenMax;  
import gs.easing.*; 
function movimientoinicialboton1 (event:MouseEvent):void{
   if (boton1.x==211.95){
      TweenMax.to(boton1, 1.2, {bezier:[{x:100, y:150}, {x:50, y:52}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      }
}; 
boton1.addEventListener (MouseEvent.CLICK, movimientoinicialboton1); 
boton1.buttonMode= true
function movimientoinicialboton2 (event:MouseEvent):void{
   if (boton2.x==459.3){
      TweenMax.to(boton2, 1.2, {bezier:[{x:100, y:150}, {x:50, y:200}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      }
}; 
boton2.addEventListener (MouseEvent.CLICK, movimientoinicialboton2); 
boton2.buttonMode= true


Ahora sí me funciona, no me da errores, pero si doy a uno de los dos botones, sólo se mueve el botón en el q he hecho clic, y no los dos como a ti. Además, el movimiento q te sale a ti no es el mismo q me sale a mi...

Si quieres q te pase los archivos, dímelo.

Espero q me contestes...mil gracias!

Un beso!

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 06 Sep 2009 11:18 pm
Acabo de solucionar lo de q solo se moviera el botón q pulsaba. He metido los dos TweenMax en cada funciónas]

Código ActionScript :

import gs.TweenMax;  
import gs.easing.*; 
function movimientoinicialboton1 (event:MouseEvent):void{
   if (boton1.x==211.95){
      TweenMax.to(boton1, 1.2, {bezier:[{x:100, y:150}, {x:50, y:52}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      TweenMax.to(boton2, 1.2, {bezier:[{x:100, y:150}, {x:50, y:150}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      }
}; 
boton1.addEventListener (MouseEvent.CLICK, movimientoinicialboton1); 
boton1.buttonMode= true
function movimientoinicialboton2 (event:MouseEvent):void{
   if (boton2.x==459.3){
      TweenMax.to(boton1, 1.2, {bezier:[{x:100, y:150}, {x:50, y:52}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      TweenMax.to(boton2, 1.2, {bezier:[{x:100, y:150}, {x:50, y:150}], scaleX:0.5, scaleY:0.5, orientToBezier:false, ease:Sine.easeOut});
      }
}; 
boton2.addEventListener (MouseEvent.CLICK, movimientoinicialboton2); 
boton2.buttonMode= true 

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 07 Sep 2009 05:45 pm
Hola!

De momento lo estoy solucionando yo sola...si necesito algo, volveré!!!

Mil gracias! Me has abierto un mundo nuevo de posibilidades!! jeje

Por natig

76 de clabLevel



 

msie7
Citar            
MensajeEscrito el 08 Sep 2009 11:56 pm
Hola Dester!

Ahora sí q tengo un problema!!

Me he enterado q los archivos SWF escritos en ActionScript 1.0 ó 2.0 no pueden cargar archivos SWF escritos en ActionScript 3.0, y lo q había hecho ya de mi web tiene algunas cosas en as2...

En la primera respuesta q me pusiste venía cómo hacerlo con as2, he estado probando y no me sale, ¿podrías ayudarme, por favor?

Espero tu respuesta, gracias!

Por natig

76 de clabLevel



 

msie7

 

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