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.