Comunidad de diseño web y desarrollo en internet online

Problema con la carga de un SWf externo!!!!!

Citar            
MensajeEscrito el 18 Dic 2008 01:32 am
Hola banda de Cristalab....Tengo un problemilla con la carga de un swf, es algo simple tengo 3 funciones de inicializacion estas se ejecutan el el constructor de mi clase main y como la clase main esta linkeada a mi fla es lo primero que se ejecuta, todo jala sin ningun problema hasta que fue necesario mostrar un swf externo dentro de mi pelicula para esto hago la carga en una de mis funciones de inicializacion (solo la carga no lo agrego a pantalla), la carga la hago con estas lineas de codigo:



Código :

      
var url:URLRequest;
url=new URLRequest("../Interactivos/recursos/cuenta regresiva.swf");
cuenta.load(url);
cuenta.contentLoaderInfo.addEventListener(Event.COMPLETE,lista);
 


El swf se carga bien ya que se muestra en pantalla una vez cargado el problema viene que por ejemplo si lo pongo en inicializacion2(); esta funcion se ejecuta muchisimas veces generando error y si comento la linea "cuenta.load(url);" solo se ejecuta una vez como es normal ya que esta funcion solo se llama en el constructor.....trate cambiando el codigo de lugar algo asi como a inicializacion1(); y paso lo mismo pero ahora repitiendo inicializacion1, si coloco el codigo fuera de mis funciones de inicializacion como por ejemplo al click de un boton al momento de dar click realiza la carga y a su vez ejecuta una de las funciones de inicializacion lanzandome otro monton de errores porke esta funcion se ejecuta donde no debe......No se porque apse eso pero espero me puedan ayudar si necesitan mas codigo pidanlo. GRACIAS!!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 07:19 am
Si tienes varios frames, recuerda poner un stop()
Vigila que la función inicialización no se esté ejecutando en un onEnterFrame
Siempre puedes poner una condición

Código ActionScript :

if (!cuenta.contentLoaderInfo){ //si no se ha cargado
  var url:URLRequest;
  url=new URLRequest("../Interactivos/recursos/cuenta regresiva.swf");
  cuenta.load(url);
}

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 04:14 pm
Gracias por contestar........si existe el stop() :D , probe tu codigo y ahora ya no se repite la funcion de inicializacion pero nunca se carga mi swf:

Código :

if (!cuenta.contentLoaderInfo){ //si no se ha cargado 
    var url:URLRequest; 
    url=new URLRequest("../Interactivos/recursos/cuenta regresiva.swf"); 
    cuenta.load(url); 
} 
             
cuenta.contentLoaderInfo.addEventListener(Event.COMPLETE,lista);   

////y la funcion lista///////////

////////////////////CUENTA LISTA/////////////////
      public function lista(e:Event) {
         trace("cargada");
         trace(cuenta.content);
         
      }
      /////////////////////////////////////////////////


El codigo de cuenta lista jamas se ejecuta y si en algun otro lado del codigo intento poner addChild(cuenta.content); me lanza un error diciendo que el aprametro para addChild() debe ser distinto de null :roll: no se esta cargando no se si sea algun problema de cache o algo asi pero espero se pueda resolver....la funcion inicializacion2(); la que se repetia como loca y ademas carga mi swf solo se manda llamar en el constructor de mi clase, pero como puedo checar eso que mencionas del OnEnterFrame...gracias por tu ayuda.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 04:27 pm
Estoy un poco desesperado, probe poner la carga directo en mi constructor de main y paso lo mismo que con inicializacion2() comenzo a repetirse muchas veces =[ .... eso no deberia de pasar es el constructor por dios solo se ejecuta una vez y no es llamado en ningun lado no se que estoy haciendo mal con la carga pero me da dolor de cabeza, espero su respuesta.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 05:16 pm
perdonamé, hay que usar alguna propiedad de LoaderInfo (url, o bytesLoaded)

Código ActionScript :

if (!cuenta.contentLoaderInfo.url){...}

Por si acaso haz un trace(cuenta.contentLoaderInfo.url) a ser qué vale, la primera vez y qué vale las siguientes veces

Por Eliseo2

710 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 06:53 pm
Puse el siguiente codigo para probar:

Código :

trace("primera vez",cuenta.contentLoaderInfo.url);
   //if (!cuenta.contentLoaderInfo){ //si no se ha cargado 
            var url:URLRequest; 
            url=new URLRequest("../Interactivos/recursos/cuenta regresiva.swf"); 
            cuenta.load(url); 
              // } 
             
   cuenta.contentLoaderInfo.addEventListener(Event.COMPLETE,lista);


Pasa algo extraño me traza null para la url todas las veces, pero si ejecuta la funcion lista osea que si carga el swf pero vuelve a ejecutar inicializacion2() y manda null para la url.

Funcion lista:

Código :

public function lista(e:Event) {
         trace("cargada");
         
         clip_cuenta.addChild(cuenta.content);
         
         trace("contenido cuenta",cuenta.content);
         trace("this",this);
      }


La salida de los trace en la funcion lista es [object main] para ambos casos entonces creo que por eso el problema, la clase de documento es "main" y es normal que "this" sea "object main" pero "cuenta.content" no deberia ser "object main" deberia ser algo asi como "object.cuentaregresiva" :shock: en el fla de cuenta regresiva no tiene clase linkeada y solo tiene dos lineas de codigo en el ultimo fotograma un dispatchEvent() y un stop() alguna idea de porque este pasando esto y de como lo puedo resolver tengo el tiempo encima.

Por Angel Roberto

Claber

248 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 Dic 2008 08:04 pm
Ya esta solucionado.....parece ser que si un documento no tiene una clase linkeada por default al trazar el "this" marcara [object main] entonecs si yo tengo un documento linkeado a una clase "main" y dentro de este cargo otro que tmb es main hay un conflicto de nombres entonces al cargar un [object main] desde mi clase main era como crear otra clase nueva ejecutando de nuevo el constructor y haciendo que se repitieran mis funciones XD espero este claro......MUCHAS GRACIAS!!!

Por Angel Roberto

Claber

248 de clabLevel



 

firefox

 

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