我正在尝试使用Adobe Flash CS5.5开发课件。我的课件有几节课,每节课都在单独的flash(.swf
)文件中开发。我添加了下一步& 上一页按钮,用于加载下一课和上一课。但是,只有将发布预览设置为 HTML 时,此功能才有效。这是我用过的代码:
function gotoChap1(event:MouseEvent):void {
navigateToURL(new URLRequest ("chap1.html"),("_self"));
}
chap1_btn.addEventListener(MouseEvent.CLICK , gotoChap1);
现在,当发布预览设置为 Flash 时,如何通过单击下一个/上一个按钮来加载.swf(或其他课程)文件?我用Google搜索了,但没有运气!谢谢!
答案 0 :(得分:2)
您需要使用 Loader 而不是 navigateToURL 功能。您可以创建一个主影片来加载每个外部swf,并在下载完成时添加到主舞台。
使用以下代码自动执行此过程:
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);
在此处下载演示文件:http://cl.ly/Lxj3