Ver Mensaje Individual
  #16 (permalink)  
Antiguo 06/07/2009, 14:52
Avatar de jahepi
jahepi
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Querétaro
Mensajes: 1.124
Antigüedad: 19 años, 11 meses
Puntos: 43
Respuesta: AS3: Dónde posicionar el código y lios con packages, .as, y demás

Cita:
Iniciado por darkgaze Ver Mensaje
Pero es así como lo hacéis entonces? Con esto estoy feliz

A ver si los expertos aquí creéis qu esta es la forma MEJOR de hacerlo, soy muy quisquillosa, necesito opiniones:

- Un .fla vacío que sea el papi default pero no tiene nada de nada.
- La biblioteca con las animaciones hechas en flash... exportadas a AS3.. (no se como se hace, pero ya miraré).
- Cosas externas las cargo en AS3, los XML y los videos, etc
- Inicio en Main.as y hago un proyecto pasando del .fla, como si programara normal, referenciando a la escena y al arbol de visualización de flash (display y todo eso), para que se muestre lo que yo quiero. El resto como en Java (en forma, me refiero)
- No tengo la más remota idea de como hacer los estados:

Carga menú principal y submenús. Muestra solo el menú principal.
Cuando le das a un submenú, carga un XML con datos. Debe haber algún sistema para mostrar que está cargando (con el loader y todo eso, ok), pero esto es un estado distinto. Cómo gestionáis vosotros los estados? simplemente utilizando los eventos complete encadenados??


Gracias chicos. A ver si lo llego a entender. Odio hacer las cosas mal desde el principio.
Hola darkgaze !

En cuanto al cambio de estados de las pantallas, si todo lo vas a hacer en AS si tendrías que hacerlo de la forma que mencionas, lanzar eventos y capturarlos, y en base a eso cambiar los estados.

La forma en que vas a realizarlo está muy bien, muy similar a un proyecto en JAVA.

Por ejemplo, podrías tener una sección galeria:

Código actionscript:
Ver original
  1. package
  2. {
  3.     import flash.display.MovieClip;
  4.    
  5.     public class Gallery extends MovieClip
  6.     {
  7.         var reader:XMLImageReader = new XMLImageReader();
  8.         reader.addEventListener(XMLImageReaderEvent.COMPLETE, onLoadImages);
  9.         reader.load();
  10.     }
  11.    
  12.     private function onLoadImages(evt:XMLImageReaderEvent):void
  13.     {
  14.         var iterator:Iterator = evt.images.getIterator();
  15.         while(iterator.hasNext()) {
  16.             var image:Image = iterator.next() as Image;
  17.             image.addEventListener(ImageEvent.COMPLETE, onLoadImage);
  18.             addChild(image)
  19.         }
  20.     }
  21.    
  22.     private onLoadImage(evt:ImageEvent):void
  23.     {
  24.         dispatchEvent(new GalleryEvent(GalleryEvent.ON_IMAGE, evt.image));
  25.     }
  26. }

Y el punto de entrada:

Código actionscript:
Ver original
  1. package
  2. {
  3.     import flash.display.MovieClip;
  4.    
  5.     public class Main
  6.     {
  7.         public static function main(root:MovieClip):void
  8.         {
  9.             var gallery:Gallery = new Gallery();
  10.             root.addChild(gallery);
  11.         }
  12.     }
  13. }

Y desde el .fla:

Código actionscript:
Ver original
  1. Main.main(this);

Si vienes del mundo de JAVA no creo que se te complique, nada mas descompone el problema en pequeños objetos cohesivos, puedes tener una clase Principal que tenga asociada las secciones, y cada sección tiene asociados otros objetos para cumplir con los requerimientos del proyecto.

Un saludote !
__________________
Una contraseña es como la ropa interior. No deberías dejarlas afuera a la vista de otras personas, deberías cambiarla regularmente, y ni se te ocurra prestarla a extraños.