Comunidad de diseño web y desarrollo en internet online

Precarga Externa de muchos SWF y acceder al root.

Citar            
MensajeEscrito el 11 Oct 2011 04:17 pm
Buenos días para todos, primero gracias porque en comunidad todo es mejor. sé que con su ayuda aprender todos los días será conveniente.

éste es pues mi inquietud.

1. tengo una plantilla : index.swf (donde tengo un menu de navegación: adelante y atras)
2. tengo 5 swf que se cargan en secuencia

¿Cómo precargo todos los swf al mismo tiempo?
hasta ahora logro que en cada acción de los botones cargue el siguiente o el anterior
estuve mirando los tutoriales del señor Zguillez (ver) pero no conseguí integrarlo en mi ejemplo

¿Cómo desde cada swf cargado accedo a la pelicula principal?
desde el swf cargado no he podido utilizar las funciones que estan en el index.swf
sin embargo desde el index.swf si puedo acceder a algunas funciones de los que están cargados. pero con errores


éste es mi código

Código ActionScript :

var peliculas_arr:Array = ["0.0.swf","0.1.swf","0.2.swf","0.2.1.swf","0.2.2.swf"];
// defino cual esl el indice para saber cual es el que está activo
var currentIndex:int = 0;
// hago el cargador.. para los swf
var loader:Loader = new Loader();
// en el MC del Contenedor voy a ir cargando todos los swf
contenedor.addChild(loader);

atras.addEventListener(MouseEvent.CLICK, anterior_fn);
adelante.addEventListener(MouseEvent.CLICK, siguiente_fn);
// creo las funciones para ir adelante o atras
function siguiente_fn(event:MouseEvent):void {
   // aqui controlo el index para saber cual swf cargo
   currentIndex++;
   if (currentIndex > peliculas_arr.length - 1) {
      currentIndex = 0;
   }
   // despues de organizar el index cargo en el contenedor la pelicula
   cargarPelicula(peliculas_arr[currentIndex]);
}
function anterior_fn(event:MouseEvent):void {
   currentIndex--;
   if (currentIndex < 0) {
      currentIndex = peliculas_arr.length - 1;
   }
   cargarPelicula(peliculas_arr[currentIndex]);
}
// aqui cargo los swf
function cargarPelicula(url:String) {
   
   var Ubicacion:URLRequest = new URLRequest(url);
   loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,Cargando);
   loader.contentLoaderInfo.addEventListener(Event.COMPLETE, Completo);
   loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, hayError);
   loader.load(Ubicacion);
   function Cargando(e:ProgressEvent) {
   }
   function Completo(e:Event) {
      // cuando ha cargado completamente un swf entonces voy a hacer una comparación para
      // activar los botones
      var child:MovieClip = MovieClip(e.target.content);
      switch (currentIndex) {
         case 0 :
            child.boton2_btn.addEventListener(MouseEvent.CLICK, siguiente_fn);
            break;
         case 1 :
            break;
         case 2 :
            child.personaje.objetivo.addEventListener(MouseEvent.CLICK, siguiente_fn);
            // éste llamado no me funciona, me saca error
            /*
            TypeError: Error #1010: Un término no está definido y no tiene propiedades.
            at Function/<anonymous>()
            */
            break;
         case 3 :
            break;
         case 4 :
            break;            
      }
   }
   function hayError(e:Event) {
      trace("error");
   }
}
// cargo la primera pelicula
cargarPelicula(peliculas_arr[currentIndex]);


Muchas Gracias por sus aportes.

Por bosteso

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Oct 2011 05:02 pm
Hola bro! Cucha bien: Primero, el ejemplo de zguillez es para as2. Segundo esta forma que usas es muy as2. En as3 Cada swf tiene que tener su clase con sus metodos y propiedades, Una manera de navegar entre secciones, es que el swf principal escuche eventos de cambio de seccion de una seccion cargada, o sea, si esta cargada seccion 1 y queres ir a seccion 2, desde seccion 1 se tira el evento cambiar seccion con el dato 2 x ejemplo, para que t cargue la seccion 2.

abrazo

eze

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 11 Oct 2011 05:24 pm
Buenas tardes eze y muchas gracias por responder.

dejame saber si te comprendi bien.
tendría entonces

index.swf con su main.as como clase principal y las subclases para los botones, desde aqui cargo la primera pelicula, adicional los listener para validar cual instancia esta cargada y hacer el cambio

0.0.swf con su main.as y la clase para el boton de continuar, y ésta clase dispararía una acción en el index.swf que ya tiene el listener?.

Agradezco tu paciencia, y sobretodo la ayuda.

Por bosteso

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 11 Oct 2011 07:18 pm
Como estas trabajando en un proyecto, solo habría un main.as, las clases de los demás swf pueden llamarse de cualquier manera que identifique al swf.
Para lo de los eventos te recomiendo verte este tuto

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox
Citar            
MensajeEscrito el 11 Oct 2011 08:01 pm
Hola Eze..
encontré esto..
Carga de archivos igual tiene como errores de implementación.

voy a mirar ya mismo entonces el tutorial. que me has pasado.. muy amable como siempre..

Por bosteso

2 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Oct 2011 04:17 pm
El codigo as3 del ejemplo que me pasaste esta hecho para ser agregado en un frame, lo cual no es una buena practica.

abrz

eze

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

firefox

 

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