actionscript 3 - programar - Cómo cargar el archivo swf haciendo clic en el botón Siguiente
como programar cambios de escena con botones en animate cc (1)
Estaba tratando de desarrollar material didáctico utilizando Adobe Flash CS5.5. Mi material didáctico tiene varias lecciones y cada lección desarrollada en un archivo flash individual ( .swf
). He agregado el botón Siguiente y Anterior para cargar la lección siguiente y la anterior. Pero esto solo funciona si configuro Vista previa de publicación como HTML . Aquí está el código que he usado:
function gotoChap1(event:MouseEvent):void {
navigateToURL(new URLRequest ("chap1.html"),("_self"));
}
chap1_btn.addEventListener(MouseEvent.CLICK , gotoChap1);
ahora, ¿cómo puedo cargar el archivo .swf (u otra lección) haciendo clic en el botón Siguiente / Anterior cuando la Vista previa de publicación está configurada en Flash ? Lo busqué en Google, ¡pero sin suerte! ¡gracias!
Necesita usar un cargador en lugar de la función navigateToURL . Puede crear una película principal para cargar cada swf externo y agregarla en el escenario principal cuando se complete la descarga.
Use el siguiente código para automatizar el proceso:
import flash.display.Loader;
import flash.events.Event;
import flash.events.MouseEvent;
// Vars
var currentMovieIndex:uint = 0;
var currentMovie:Loader;
// Put your movies here
var swfList:Array = ["swf1.swf", "swf2.swf", "swf3.swf"];
// Add the event listener to the next and previous button
previousButton.addEventListener(MouseEvent.CLICK, loadPrevious);
nextButton.addEventListener(MouseEvent.CLICK, loadNext);
// Loads a swf at secified index
function loadMovieAtIndex (index:uint) {
// Unloads the current movie if exist
if (currentMovie) {
removeChild(currentMovie);
currentMovie.unloadAndStop();
}
// Updates the index
currentMovieIndex = index;
// Creates the new loader
var loader:Loader = new Loader();
// Loads the external swf file
loader.load(new URLRequest(swfList[currentMovieIndex]));
// Save he movie reference
currentMovie = loader;
// Add on the stage
addChild(currentMovie);
}
// Handles the previous button click
function loadPrevious (event:MouseEvent) {
if (currentMovieIndex) { // Fix the limit
currentMovieIndex--; // Decrement by 1
loadMovieAtIndex(currentMovieIndex);
}
}
// Handles the next button click
function loadNext (event:MouseEvent) {
if (currentMovieIndex < swfList.length-1) { // Fix the limit
currentMovieIndex++; // Increment by 1
loadMovieAtIndex(currentMovieIndex);
}
}
// Load the movie at index 0 by default
loadMovieAtIndex(currentMovieIndex);
Descargue los archivos de demostración aquí: http://cl.ly/Lxj3