Comunidad de diseño web y desarrollo en internet online

Duda de principiante

Citar            
MensajeEscrito el 23 Sep 2009 02:29 pm
Buenas!
Es mi primer post en el foro, estoy estudiando Action Script 3...llevo 3 meses en éstas y tengo un monton de dudas, no se si será el lugar adecuado para consultar cosas que seguro para la mayoría serán muy fáciles. Hay cosas que no entiendo del código, y no se si la sintaxis y la forma en que esta hecho es correcta, es una mezcla entre lo que nos da el profesor y l que yo logro sacar por mi parte.....
Hay algún lugar para principiantes como yo???
en fin...
estoy haciendo una galería sencilla compuesta de un visor de 300px x 200px (dentro de éste he creado en línea de tiempo los sus contenidos que son 3 también de 300px x 200px con una mascara para que tweneandolo vayan apareciendo uno por uno con respecto a unos botones.
El conjunto de botones que controlaría lo que sucede en el visor esta compuesto por 5 mc (btn_izq, btn_1, btn_2, btn_3 y btn_dch).
Estan metidos en un mc que se llama controlador . Todo esto anterior esta dentro de otro mc que se llama galeria.

De momento tengo el código a medias... no se como conseguir que al presionar btn_izq y btn_dch se detenga y no continue el tweneo vacio. Tambien me gustaría saber como puedo hacer para que al estar un btn presionado se desactive su buttonMode y se quede como si estuviese en over (en rojo.. como seleccionado).

Muchas gracias por la ayuda, y decirme por favor si corresponde o no hacer este tipo de preguntas aqui, o como debo hacerlo...

en fin... es esto:

Código ActionScript :

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

//----------------------------------------------------------------------
//Variable para las flechas
var img_actual:Number=1;
//----------------------------------------------------------------------


//----------------------------------------------------------------------
galeria.controlador.btn_izq.mouseChildren=false;
galeria.controlador.btn_dcha.mouseChildren=false;
galeria.controlador.btn_1.mouseChildren=false;
galeria.controlador.btn_2.mouseChildren=false;
galeria.controlador.btn_3.mouseChildren=false;

//buttonMode
galeria.controlador.btn_izq.buttonMode=true;
galeria.controlador.btn_dcha.buttonMode=true;
galeria.controlador.btn_1.buttonMode=true;
galeria.controlador.btn_2.buttonMode=true;
galeria.controlador.btn_3.buttonMode=true;
//----------------------------------------------------------------------

//over
galeria.controlador.btn_izq.addEventListener(MouseEvent.MOUSE_OVER, over);
galeria.controlador.btn_dcha.addEventListener(MouseEvent.MOUSE_OVER, over);
galeria.controlador.btn_1.addEventListener(MouseEvent.MOUSE_OVER, over);
galeria.controlador.btn_2.addEventListener(MouseEvent.MOUSE_OVER, over);
galeria.controlador.btn_3.addEventListener(MouseEvent.MOUSE_OVER, over);
//----------------------------------------------------------------------

//out
galeria.controlador.btn_izq.addEventListener(MouseEvent.MOUSE_OUT, out);
galeria.controlador.btn_dcha.addEventListener(MouseEvent.MOUSE_OUT, out);
galeria.controlador.btn_1.addEventListener(MouseEvent.MOUSE_OUT, out);
galeria.controlador.btn_2.addEventListener(MouseEvent.MOUSE_OUT, out);
galeria.controlador.btn_3.addEventListener(MouseEvent.MOUSE_OUT, out);
//----------------------------------------------------------------------

//click
galeria.controlador.btn_izq.addEventListener(MouseEvent.CLICK, click_fnc);
galeria.controlador.btn_dcha.addEventListener(MouseEvent.CLICK, click_fnc);
galeria.controlador.btn_1.addEventListener(MouseEvent.CLICK, click_fnc);
galeria.controlador.btn_2.addEventListener(MouseEvent.CLICK, click_fnc);
galeria.controlador.btn_3.addEventListener(MouseEvent.CLICK, click_fnc);
//----------------------------------------------------------------------

//declaracion de funciones
function over(e:MouseEvent) {
   TweenMax.to(e.target.getChildAt (0), 0.3, {tint: 0xFF0000 } );
}
function out(e:MouseEvent) {
   TweenMax.to(e.target.getChildAt (0), 0.3, {tint: null } );
}
//----------------------------------------------------------------------


//Pulsar boton numerico
function click_fnc(e:MouseEvent) {
   var indice_boton:String=e.target.name.charAt(4);
   if (e.target.name.length==5) {
      TweenMax.to(galeria.visor.contenidos, 0.5, { x: -(Number(indice_boton)-1)*300, ease:Back.easeOut});
   } else {
      //Pulsar flecha izq
      if (indice_boton=="i") {
         //para que no siga yendo a la izquierda.
         if (img_actual>1) {
         img_actual--;
         TweenMax.to(galeria.visor.contenidos, 0.5, { x: -(img_actual-1)*300, ease:Back.easeOut});
         }
      } else {
         //Pulsar flecha der
         img_actual++;
         TweenMax.to(galeria.visor.contenidos, 0.5, { x: -(img_actual-1)*300, ease:Back.easeOut});
      }
   }
}
//----------------------------------------------------------------------


[flash width=600 height=400]http://iodisain.es/galeriaImagenesIO.swf[/flash]

Por iodisain

3 de clabLevel



 

Madrid

firefox
Citar            
MensajeEscrito el 23 Sep 2009 02:41 pm
Lo de controlar que no salga "blanco" a la derecha es poner un "if" como el que has puesto para controlar el de la izquierda

Código ActionScript :

      } else { 
         //Pulsar flecha der 
         if (img_actual<3){  //<--comprobamos el índice
            img_actual++; 
            TweenMax.to(galeria.visor.contenidos, 0.5, { x: -(img_actual-1)*300, ease:Back.easeOut}); 
         }
      } 

Pero habrás observado que no funciona del todo bien. Eso es porque, cuando pulsas cualquier botón, DEBES igualar img_actual al botón seleccionado

Código ActionScript :

if (e.target.name.length==5) { 
       //<---aquí hay que igualar img_actual a "algo"--->
      img_actual=??????
      TweenMax.to(galeria.visor.contenidos, 0.5, { x: -(Number(indice_boton)-1)*300, ease:Back.easeOut}); 
   }

Lo de los botones con estados creo que es sólo darles la propiedad "toogle" e igualarla a "true". Así quedarán como "presionados". En ese caso puedes comprobar mediante la propiedad "selected" si el botón está presionado o no.

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Sep 2009 03:02 pm
Muchas gracias por tu respuesta Eliseo2!!
Como no tengo mucha idea estoy trasteando a ver si consigo hacer lo que dices... lo de igualar img_actual a algo. De momento nada... mis conocimientos son poquisimos y muy dispersos....

Por iodisain

3 de clabLevel



 

Madrid

firefox

 

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