Кнопка Flash (создание страницы меню с кнопками Flash для открытия SWF-файлов)

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

1 ответ

Решение

Этот ответ основан на моей интерпретации вашего вопроса, а именно: "Могу ли я создать SWF-файл, который действует как меню, и загружать различные SWF-файлы в зависимости от того, что пользователь нажимает в меню?".

Ответ, конечно, да, и вот как:

Несколько вещей, которые вам нужно понять / посмотреть:

  1. Классы Loader и URLRequest.
  2. Прослушиватели событий для кнопок.

Вот функция для загрузки вашего 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");
}
Другие вопросы по тегам