Кнопка Flash (создание страницы меню с кнопками Flash для открытия SWF-файлов)
Добрый день всем. Я здесь сегодня, чтобы обратиться за помощью о Flash CS4 и ActionScript 3.0. История начинается, когда однажды мой начальник попросил меня сделать флэш-презентацию о предстоящем обучении пользователей новому программному обеспечению. Я был в восторге и взволнован этим, потому что я долгое время не использовал Flash (обратите внимание, что у меня нет никакого опыта в ActionScript 3.0). Сначала все было немного грубо, так как мне нужно вспомнить, как правильно использовать кадры для создания успешной анимации. Когда я собирался закончить проект, мой босс снова подошел ко мне и спросил, могу ли я вставить страницу меню впереди, чтобы пользователям не пришлось заново воспроизводить все это, просто чтобы посмотреть что-то в этой части фильм. Так что да, сначала я не решался принять. Я сказал, что это будет работать с Powerpoint. Но она полный толкатель, и я был вынужден сказать да. Теперь у меня возникла проблема с тем, как заставить кнопку флэш-памяти загружать SWF-фильм. Я пытался искать по всей сети учебники, но в большинстве случаев "getUrl" и другие вещи считаются устаревшими. Помогите, пожалуйста?
1 ответ
Этот ответ основан на моей интерпретации вашего вопроса, а именно: "Могу ли я создать 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");
}