Comunidad de diseño web y desarrollo en internet online

evitar que se ejecute Actionscrip del swf recien cargado

Citar            
MensajeEscrito el 25 Nov 2014 06:39 pm
Buenas tardes,

Estoy creando un preloader que tras la carga total del swf aparezca un botón que hasta que no lo pulse no ponga en escena el swf cargado. Todo esto gestionado desde una clase principal que llamamos main.as.
Cierto es que hasta que no pulso dicho botón del preloader no se pone (addChild) el swf pero su código actionScrip empieza a funcionar nada más estar cargado la totalidad del swf sin esperar a que se ponga en el stage.
¿Sabéis si hay alguna forma de evitar esto?
Pongo la parte del código del main que ejecuta el preloader mientras carga el swf (definido dentro de la variable url4).
El preloader está definido como loader, que es el contenido de cargador3.

Código :

      private function onLoaderGame (e: Event) : void {
         loader=e.currentTarget.content;
         addChild (cargador3);
         trace("idioma enviado a loader es "+lenguaje);
         loader.setLeng(lenguaje);
         loader.addEventListener("gameTo", onGame);
         cargador4 = new Loader;
         cargador4.load(url4);
         cargador4.addEventListener(Event.ENTER_FRAME, inLoaderGame);
         removeChild (cargador1);
      }
      
      private function inLoaderGame (c:Event) {
         bytesT = cargador4.contentLoaderInfo.bytesTotal;
         trace ("bytes totales de juego a cargar = "+bytesT);
         bytesL = c.currentTarget.contentLoaderInfo.bytesLoaded;
         trace ("bytes cargados de juego = "+bytesL);
         percentB = Math.round(bytesL * 100 / bytesT);
         trace ("porcentaje cargado de juego = " +percentB);
         loader.loading(percentB);
         if (bytesL==bytesT) {
            c.currentTarget.removeEventListener(Event.ENTER_FRAME, inLoaderGame);
            trace ("terminada la carga del juego");
         }
      }
      
      private function onGame (e: Event) : void {
         game=e.currentTarget.content;
         addChild(cargador4);
         cargador4.removeEventListener(Event.ENTER_FRAME, inLoaderGame);
         cargador3.contentLoaderInfo.removeEventListener(Event.COMPLETE, onLoaderGame);
         removeChild(cargador3);
                }


En teoría hasta que del loader (el preloader) no despacho "gameTo" no se ejecutaría la función onGame que pone al juego en el stage. Pero como el código de cargador4 comienza a funcionar nada más terminar su carga (lo sé por varios tracers colocados en él) tampoco tengo oportunidad de hacer funcionar la función onGame pues da el siguiente error:
Error #1069: No se encontró la propiedad content en clases.loader y no hay ningún valor predeterminado.
at clases::main/onGame()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at clases::loader/goGame() //la función que despacha "gameTo" a la clase principal main.as

Creo que todo se solucionaría si evitara que el actionScrip del contenido de cargador4 comenzara a funcionar antes de tiempo. ¿Sabéis si hay alguna forma de conseguirlo?

De antemano muchas gracias.

Por JoPA

13 de clabLevel



 

chrome
Citar            
MensajeEscrito el 25 Nov 2014 07:35 pm
El codigo es bastante confuso. Hay un Loader que no tiene nada que ver con el otro loader (cargador4) que despacha un evento gameTo que hace que se agregue el otro loader. No entiendo la estructura, y si de prevenir que un código se ejecute ... mueve el c[odigo a otro fotograma y pon un stop en el anterior

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Nov 2014 05:13 pm
Muchas gracias Jorge.

Ahora que lo veo en frío igual sí que parece confuso el código. Mis disculpas. Aprovecharé tu consejo a ver que resultado me da. Gracias de nuevo.

Por JoPA

13 de clabLevel



 

chrome

 

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