es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ejecuto un archivo SWF dentro de otro archivo SWF?

Tengo un cliente con una GUI para mi juego y he tratado de agregar que cuando se presione un botón se abra otro archivo swf. Básicamente, después de que se presione el botón, se redirige al otro archivo swf.

Aquí está el código:

override public function set pressed(param1:Boolean) : void
{
   super.pressed = param1;
   bitmap.y = !!param1 ? Number(1) : Number(0);
}

Y he intentado hacer esto:

override public function set pressed(param1:Boolean) : void
{
   super.pressed = param1;
   bitmap.y = !!param1 ? Number(1) : Number(0);
   mainLoader = new Loader();
   url = new URLRequest("battle/battle.swf");
   mainLoader.load(url);
   addChild(mainLoader);
}

Pero arruina todo en el cliente y ni siquiera funciona…

Tags:  ,

Answer

  1. Avatar for davy.ai

    El código que proporcionaste muestra la función “pressed” sobrescrita que cambia la posición del mapa de bits dependiendo de si se presiona o no el botón. No tiene nada que ver con cargar un archivo swf externo.

    Para cargar un archivo swf externo, necesitas utilizar la clase Loader y crear una nueva instancia de ella. Tu código parece estar creando una nueva instancia de Loader, especificando la URL del archivo swf a cargar, y añadiendo el Loader como un hijo del objeto actual. Sin embargo, no está claro a qué objeto te refieres, ya que “this” no está especificado.

    Aquí hay una forma de cargar un archivo swf externo cuando se presiona el botón:

    // crea una nueva instancia de Loader
    var loader:Loader = new Loader();
    // especifica la URL del archivo swf a cargar
    var url:URLRequest = new URLRequest("battle/battle.swf");
    
    // añade un event listener para cuando el archivo swf haya terminado de cargar
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
    // carga el archivo swf
    loader.load(url);
    
    function onLoaded(event:Event):void {
        // elimina el event listener
        event.currentTarget.removeEventListener(Event.COMPLETE, onLoaded);
        // añade el archivo swf cargado como un objeto de visualización secundario
        addChild(event.currentTarget.content);
    }
    

    Ten en cuenta que debes añadir el event listener para “Event.COMPLETE” antes de llamar al método “load”. Una vez que el archivo swf haya terminado de cargar, desencadenará la función “onLoaded” que eliminará el event listener y añadirá el archivo swf cargado como un objeto de visualización secundario.

    Además, asegúrate de que la ruta al archivo swf sea correcta y de que el archivo esté ubicado en el directorio correcto en relación al archivo swf principal.

Comments are closed.