Foros del Web » Creando para Internet » Flash y Actionscript »

IMPORTANTE!!! Añadir evento adicional a galeria en as3

Estas en el tema de IMPORTANTE!!! Añadir evento adicional a galeria en as3 en el foro de Flash y Actionscript en Foros del Web. Hola, tengo hecha una galería de imagenes, exclusivamente en as3 ya que yo html no conozco y hasta ahora me ha quedado bastante bien (en ...
  #1 (permalink)  
Antiguo 29/11/2009, 08:33
 
Fecha de Ingreso: noviembre-2009
Ubicación: Madrid
Mensajes: 81
Antigüedad: 15 años
Puntos: 1
Exclamación IMPORTANTE!!! Añadir evento adicional a galeria en as3

Hola, tengo hecha una galería de imagenes, exclusivamente en as3 ya que yo html no conozco y hasta ahora me ha quedado bastante bien (en función de mis pocos conocimientos de este lenguaje) y se adecua bastante a lo que necesito, pero me gustaría a poder ser rizar un poco el rizo. Me explico.
Esta galería consiste en que importa las imagenes de la carpeta que tu le mandas, sin tener que estar en la bibilioteca, y mediante codigo las escala y las rota cada vez de una manera diferente, queda bastante curioso y desenfadado, cuando haces doble click en una imagen esta se hace grande (tamaño real de la imagen) y tanto esa como las otras puedes arrastrarlas por todo el escenario, cuando quieres ver otra imagen en grande le das doble click a esa otra y la que estaba en grande se hace pequeña por si sola y la otra se hace grande ¿Me explico?.
Bueno pues la cuestion es que me gustaría que una vez que la imagen estuviera en grande poder volver a darle doble click y que se hiciera pequeña otra vez.
Pero no se muy bien como hacerlo, ya que como os he dicho mis conocimientos de este lenguaje son algo escasos.
A ver si algun sabio dejandole el codigo que ya tengo me sabe decir que función o evento tengo que meterle y donde para que haga lo que pretendo.
Muchas gracias por adelantado.

Código actionscript:
Ver original
  1. import fl.transitions.easing.*;
  2. import com.gskinner.motion.GTween;
  3.  
  4. var listadoFotos:Array = new Array();
  5. listadoFotos = ["compo1.jpg", "compo2.jpg", "compo3.jpg", "compo4.jpg", "compo5.jpg", "compo6.jpg"];
  6.  
  7. var pAmp:Polaroid = null;
  8. var velocidad:Number = .7;
  9.  
  10. for (var i:uint = 0; i<listadoFotos.length; i++) {
  11.     // traemos la clase Polaroid desde la biblioteca
  12.     var clip:Polaroid = new Polaroid();
  13.     addChild(clip);
  14.  
  15.     // las colocamos
  16.     clip.x = Math.round(Math.random()*770);
  17.     clip.y =  Math.round(Math.random()*500);
  18.     clip.rotation =  Math.round(30-(Math.random()*60));
  19.     clip.scaleX = clip.scaleY = .4;
  20.     // recordamos los valores iniciales
  21.     clip.inicialX = clip.x;
  22.     clip.inicialY = clip.y;
  23.     clip.inicialRotacion = clip.rotation;
  24.  
  25.     // cargamos la imagen
  26.     clip.addChild(cargaImagen("composicion/"+listadoFotos[i], -165 , -212));
  27.  
  28.     // añadimos funcionalidad
  29.     clip.addEventListener(MouseEvent.MOUSE_DOWN, arrastra);
  30.     clip.addEventListener(MouseEvent.MOUSE_UP, suelta);
  31.     clip.mouseChildren = false;
  32.     clip.doubleClickEnabled = true;
  33.     clip.addEventListener(MouseEvent.DOUBLE_CLICK, amplia);
  34. }
  35.  
  36. // carga de Imagen mediante función propia
  37. function cargaImagen(ruta:String, dondeX:Number = 0, dondeY:Number = 0):Loader {
  38.     var peticion:URLRequest = new URLRequest(ruta);
  39.     var cargador:Loader = new Loader();
  40.     cargador.x = dondeX;
  41.     cargador.y = dondeY;
  42.     cargador.load(peticion);
  43.     // devolvemos el loader al sitio donde se ha hecho la llamada a la función
  44.     return cargador;
  45. }
  46.  
  47.  
  48.  
  49. // amplia la foto seleccionada al hacer doble click y reduce la antigua si existiera
  50. function amplia(ev:MouseEvent) {
  51.     if ( pAmp != null) {
  52.         var reducir:GTween = new GTween(pAmp, velocidad, {rotation:pAmp.inicialRotacion, scaleX:.3, scaleY:.3, x:pAmp.inicialX, y:pAmp.inicialY}, {ease:Strong.easeInOut});
  53.     }
  54.     var ampliar:GTween = new GTween(ev.currentTarget, velocidad, {rotation:0, scaleX:1, scaleY:1, x:175, y:212}, {ease:Strong.easeInOut});
  55.     pAmp = Polaroid(ev.currentTarget);
  56. }
  57.  
  58.  
  59. // comienza el arrastre de la polaroid por el escenario
  60. function arrastra(ev:MouseEvent) {
  61.     addChild(Sprite(ev.currentTarget));
  62.     ev.currentTarget.startDrag();
  63. }
  64.  
  65. // detiene el arrastre de la polaroid por el escenario
  66. function suelta(ev:MouseEvent) {
  67.     var clip:Polaroid = Polaroid(ev.currentTarget);
  68.     clip.inicialX = clip.x;
  69.     clip.inicialY = clip.y;
  70.     stopDrag();}

Última edición por Serezade81; 29/11/2009 a las 12:18
  #2 (permalink)  
Antiguo 29/11/2009, 12:57
 
Fecha de Ingreso: mayo-2008
Ubicación: Murcia, España
Mensajes: 313
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: IMPORTANTE!!! Añadir evento adicional a galeria en as3

Puedes hacerlo de varias formas, por ejemplo:

Gestiona el evento double click de cada una de las imágenes y en el compruebas, por ejemplo, su escala, si es .3, será que está siendo mostrada, por tanto, la quitas... No se, es lo más sencillo, aunque quizá no lo más adecuado, pero viendo que quieres salir del problema rapido, pruebate ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.