Comunidad de diseño web y desarrollo en internet online

problemas con el preloader

Citar            
MensajeEscrito el 27 Dic 2010 01:46 pm
Buenos dias antes que nada gracias por sus repuestas
tengo un problema con as3 con el q soy absolutamente nuevo ya la pregunta es la siguiente
tengo una archivo home.swf en el puse este preload

Código ActionScript :

stop(); 
 
addEventListener(Event.ENTER_FRAME , preload); 
function preload(event:Event):void  
{ 
   var bytesTotales = stage.loaderInfo.bytesTotal; 
   var bytesCargados = stage.loaderInfo.bytesLoaded; 
   var porcentaje = Math.round(bytesCargados * 100 /bytesTotales) 
    
   textoPorcentaje.text = porcentaje + "% Cargados"; 
   cargaAnimada_mc.gotoAndStop(porcentaje); 
    
   if (bytesCargados == bytesTotales) 
   { 
      removeEventListener(Event.ENTER_FRAME,preload); 
      gotoAndPlay(2) 
      textoPorcentaje.text = ""; 
      removeChild(textoPorcentaje); 
      removeChild(cargaAnimada_mc); 
   } 
}

en este no hay problema 
pero dentro de el es decir dentro de home me carga otro swf que es llamado por un MC que esta en el escenario con este codigo 
Código :
var contenedor:MovieClip = new MovieClip(); 
var loader:Loader = new Loader(); 
loader.load(new URLRequest("quienes.swf")); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, insertMovie); 
 
function insertMovie(evt:Event):void{  
 
addChild(contenedor).name = "contenedor"; 
contenedor.addChild(loader).name = "loader"; 
contenedor.x = 0 
contenedor.y = 0 
 
}


el MC tiene como nombre de instancia fondoNosotros
bueno hago lo mismo con lo demas MC de mi trabajo y para aparecerlos hago lo siguiente

Código ActionScript :

stop(); 
import fl.transitions.*; 
import fl.transitions.easing.*;//Importo Paquetes 
import caurina.transitions.Tweener; 
 
//definir los fondos visibles 
//fondoPrincipal.visible=true; 
fondoNosotros.visible=false; 
fondoMetodologia.visible=false; 
fondoServicios.visible=false; 
fondoPortafolio.visible=false; 
fondoContacto.visible=false; 
fondoEnlace.visible=false; 
 
 
//definir los fondos en Alpha 
//fondoPrincipal.alpha=0; 
fondoNosotros.alpha=0; 
fondoMetodologia.alpha=0; 
fondoServicios.alpha=0; 
fondoPortafolio.alpha=0; 
fondoContacto.alpha=0; 
fondoEnlace.alpha=0; 
 
//definir los botones 
nosotros_btn.buttonMode=true; 
metodologia_btn.buttonMode=true; 
servicios_btn.buttonMode=true; 
portafolio_btn.buttonMode=true; 
contacto_btn.buttonMode=true; 
enlace_btn.buttonMode=true; 
 
 
//eventos listener 
nosotros_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
nosotros_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
nosotros_btn.addEventListener(MouseEvent.CLICK, ClickNosotros); 
 
metodologia_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
metodologia_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
metodologia_btn.addEventListener(MouseEvent.CLICK, ClickMetodologia); 
 
servicios_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
servicios_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
servicios_btn.addEventListener(MouseEvent.CLICK, ClickServicios); 
 
portafolio_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
portafolio_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
//portafolio_btn.addEventListener(MouseEvent.CLICK, ClickPortafolio); 
 
contacto_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
contacto_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
//contacto_btn.addEventListener(MouseEvent.CLICK, ClickContacto); 
 
enlace_btn.addEventListener(MouseEvent.ROLL_OVER, SobreMi); 
enlace_btn.addEventListener(MouseEvent.ROLL_OUT, FueraMi); 
//enlace_btn.addEventListener(MouseEvent.CLICK, ClickEnlace); 
 
//Funciones de los botones 
function SobreMi(event:MouseEvent):void { 
   event.target.gotoAndPlay("Sobre"); 
} 
function FueraMi(event:MouseEvent):void { 
   event.target.gotoAndPlay("Fuera"); 
} 
 
 
//funcion para boton nosotros cuando hace click 
function ClickNosotros(event:MouseEvent):void { 
 
   //event.target.Tween = new Tween(event.target,"alpha",Strong.easeIn,0,1,3,true) 
   nosotros_btn.removeEventListener(MouseEvent.CLICK, ClickNosotros); 
   metodologia_btn.addEventListener(MouseEvent.CLICK, ClickMetodologia); 
   servicios_btn.addEventListener(MouseEvent.CLICK, ClickServicios); 
 
   fondoPrincipal.visible=false; 
   fondoServicios.visible=false; 
   fondoMetodologia.visible=false; 
   fondoPortafolio.visible=false; 
   fondoContacto.visible=false; 
   fondoEnlace.visible=false; 
   fondoNosotros.visible=true; 
 
    
   Tweener.addTween(fondoNosotros, {alpha:1, time:3}) 
   Tweener.addTween(fondoPrincipal, {alpha:0, time:3}) 
   Tweener.addTween(fondoMetodologia, {alpha:0, time:3}) 
   Tweener.addTween(fondoServicios, {alpha:0, time:4}) 
} 
 
 
//funcion para boton metodologia cuando hace click 
function ClickMetodologia(event:MouseEvent):void { 
   metodologia_btn.removeEventListener(MouseEvent.CLICK, ClickMetodologia); 
   nosotros_btn.addEventListener(MouseEvent.CLICK, ClickNosotros); 
   servicios_btn.addEventListener(MouseEvent.CLICK, ClickServicios); 
 
   fondoPrincipal.visible=false; 
   fondoNosotros.visible=false; 
   fondoServicios.visible=false; 
   fondoPortafolio.visible=false; 
   fondoContacto.visible=false; 
   fondoEnlace.visible=false; 
   fondoMetodologia.visible=true; 
    
    
    
   Tweener.addTween(fondoMetodologia, {alpha:1, time:3}) 
   Tweener.addTween(fondoPrincipal, {alpha:0, time:3}) 
   Tweener.addTween(fondoNosotros, {alpha:0, time:3}) 
   Tweener.addTween(fondoServicios, {alpha:0, time:4}) 
} 
 
 
//funcion para boton metodologia cuando hace click 
function ClickServicios(event:MouseEvent):void { 
   servicios_btn.removeEventListener(MouseEvent.CLICK, ClickServicios); 
   metodologia_btn.addEventListener(MouseEvent.CLICK, ClickMetodologia); 
   nosotros_btn.addEventListener(MouseEvent.CLICK, ClickNosotros); 
 
   fondoPrincipal.visible=false; 
   fondoNosotros.visible=false; 
   fondoServicios.visible=true; 
   fondoPortafolio.visible=false; 
   fondoContacto.visible=false; 
   fondoEnlace.visible=false; 
   fondoMetodologia.visible=false; 
    
    
    
   Tweener.addTween(fondoServicios, {alpha:1, time:4}) 
   Tweener.addTween(fondoPrincipal, {alpha:0, time:3}) 
   Tweener.addTween(fondoNosotros, {alpha:0, time:3}) 
   Tweener.addTween(fondoMetodologia, {alpha:0, time:3}) 
   Tweener.addTween(fondoEnlace, {alpha:0, time:3}) 
   Tweener.addTween(fondoContacto, {alpha:0, time:3}) 
   Tweener.addTween(fondoPortafolio, {alpha:0, time:3}) 
}

ahora buena la pregunta cuando me carga el MC principal es decir home no me manda fallas pero cuando llamo a los demas movie clip los cuales tiene el mismo preloader que el principal me manda 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 video_intro_fla::MainTimeline/preload2()
TypeError: Error #1009: No se puede acceder a una propiedad o a un método de una referencia a un objeto nulo.
at quienes_fla::MainTimeline/preload3()
POR FAVOR necesito su iluminacion se que ustedes lo pueden hacer

Por edu159

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Dic 2010 11:50 pm
No se donde esten la funciones prelaod2 y preload3 donde marca el error.

En lugar de usar enterFrame para la precarga utiliza Progress, stage.loaderInfo.addEventListener(ProgressEvent.PROGRESS,...

Yo quitaria el acceso al stage por que si cargas externamente un clip que accede al stage va mandrte errores en tu caso un this.loaderInfo debe funcionar.

Haber si con algo de eso se soluciona, de otra forma pon las funciones donde se marca el error para ver que pasa y si le activas el permmit debugin en configuraciones de publicacion te va mandar la linea que marca el error para identificarlo mas facil.

Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Dic 2010 11:35 pm
bueno los preloader 2 y 3 tienen el mismo codigo que el preloader 1 (o preloader)

Por edu159

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 29 Dic 2010 04:52 pm
Tu problema entonces es el acceso al stage, cuando un objeto no a sido agregado al stage no puede accederla y es por esto que te marca error, implementa mejor la parte del ProgressEvent como te mencione y en lugar de usar stage utiliza this o e.target (como te sirva mejor) en la documentacion viene como usar todo esto.



Saludos!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox

 

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