Bueno mira, probando y probando llegué a esto:
Código ActionScript :
root.loaderInfo.addEventListener(ProgressEvent.PROGRESS, mostrarporcentaje);
function mostrarporcentaje(e:ProgressEvent){
if(root.loaderInfo.bytesLoaded==root.loaderInfo.bytesTotal){
root.loaderInfo.removeEventListener(ProgressEvent.PROGRESS, mostrarporcentaje);
porCargado.text="";
removeChild(cargando);
removeChild(porCargado);
gotoAndPlay("principal");
}else{
porcentaje=((root.loaderInfo.bytesLoaded*100)/root.loaderInfo.bytesTotal);
porCargado.text=String(porcentaje);
}
}
Y bueno al parecer está funcionando, mi lio está ahora en que ese Preloader lo tenía en el frame 2 y no el 1, ahora lo he movido al primero, para que cargue todo antes de comenzar la peli, pero el frame que antes estaba en el 1 ("principal") y que ahora está en el 2 me arroja el siguiente error:
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at logo_fla::MainTimeline/frame2()[logo_fla.MainTimeline::frame2:30]
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at logo_fla::scenaint1_65()
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
at logo_fla::scena1_64()
at flash.display::MovieClip/gotoAndPlay()
at logo_fla::MainTimeline/mostrarporcentaje()[logo_fla.MainTimeline::frame1:71]
Me muestra un error que no existía antes en la línea 30 del frame 2 (principal)... lo que hago en esa linea de código es dirigirme a una instancia que está justo allí, y que antes funcionaba perfectamente pero por alguna razón ahora no. (solo hice intercambiar el fotograma del preloader con el principal de la peli).
El error indica que el MC no está correctamente instanciado, pero si lo está, lo he revisado una y mil veces, todo está en orden pero sigue saliendo ese error en tiempo de ejecución.
Buscando en la web me encontré con un post en el que otra persona le pasó igual y lo solucionó poniendo un frame adelante el código y en el anterior el MC, es decir, dejar el mc en el frame 2 y pasar ese código al frame 3. Eso lo intenté y me funcionó, el problema es que necesito tener acceso a eventos de botones y textos que no puedo hacer desde otro frame, así que esa no es solución y me parece algo extraño que funcione así, en diferentes frames.
Espero hacerme entender, en resumen intercambié el frame del preloader con el frame principal, ahora el preloader está en el frame 1 y el principal en el 2, pero no me detecta las instancias del escenario.