Этот ответ основан на моей интерпретации вашего вопроса, а именно: «Могу ли я создать SWF-файл, который действует как меню, и загружать различные SWF-файлы в зависимости от того, что пользователь нажимает в меню?».
Ответ, конечно, да, и вот как:
Несколько вещей, которые вам нужно понять / посмотреть:
- Классы Loader и URLRequest.
- Прослушиватели событий для кнопок.
Вот функция загрузки SWF:
var loadedSWF:Loader = null;
/**
* Loads an SWF and adds it to container once complete
* @param file The URL to the SWF to load
* @param container The container to add the SWF to
*/
function loadSWF(file:String, container:MovieClip=null):void
{
if(container == null) container = MovieClip(root);
// removes the previously loaded SWF
if(loadedSWF != null)
{
if(loadedSWF.parent) loadedSWF.parent.removeChild(loadedSWF);
}
var req:URLRequest = new URLRequest(file);
loadedSWF = new Loader();
loadedSWF.load(req);
addChild(loadedSWF);
}
А вот как использовать эту функцию при нажатии кнопки:
mybutton.addEventListener(MouseEvent.CLICK, _click);
function _click(e:MouseEvent):void
{
loadSWF("myfile1.swf");
}
По вопросу в комментариях:
Вы можете использовать navigateToURL()
вместо Loader и настроить внешние SWF-файлы на разных страницах (например, на веб-сайте). Если вы собираетесь это сделать, возможно, имеет смысл сохранять основную страницу индекса просто в формате HTML и запускать страницы в новых окнах. Если вы все еще хотите, чтобы ваша главная страница отображалась как Flash, то переход на страницу в новом окне выполняется следующим образом:
button.addEventListener(MouseEvent.CLICK, _click);
function _click(e:MouseEvent):void
{
var req:URLRequest = new URLRequest("somepage.html");
navigateToURL(req, "_blank");
}