Многостраничное приложение Flash - PullRequest
1 голос
/ 18 февраля 2009

Я очень новичок во Flash, и мне нужна помощь, чтобы начать создавать многостраничное приложение Flash.

Мне удалось открыть другой файл SWF (называемый Page1) из основного файла SWF, вызвав эту функцию

    private function LoadExternalSwf(): void
    {
        var loader:Loader = new Loader();
        var urlReq:URLRequest = new URLRequest("page1.swf");
        loader.load(urlReq);
        addChild(loader);
    }
  1. Как добавить своего рода кнопку «Назад» на страницу Page1, чтобы она закрылась (чтобы мы вернулись на главный экран)?

  2. Если Page1 был фильм, можно ли автоматически закрыть его после завершения воспроизведения?

(я использую Flash CS3, Flex Builder 3, AS3)

Спасибо

Ответы [ 2 ]

2 голосов
/ 18 февраля 2009

Как добавить кнопку «Назад»? на Page1, чтобы он закрылся (так что мы вернулись к основному экран)

Есть много способов сделать это. Вы можете просто скрыть страницу, установив для ее видимости значение false, вы можете просто переместить ее со сцены, чтобы ее не было видно, или вы могли полностью удалить мувиклип (наряду с, вероятно, другими параметрами). В основном это зависит от вас, и вы должны выбрать лучший вариант, который соответствует вашим целям.

В вашем примере вы хотите, чтобы у page1.swf была кнопка, которая при нажатии на нее говорит родительской функции что-то сделать. Я бы лично порекомендовал это сделать, отправив событие при нажатии кнопки. Затем родитель может прослушать страницу 1 для этого события. Когда он перехватывает это событие, вы можете выбрать, что делать со страницей 1.

Я предлагаю вам прочитать некоторые статьи о событиях в ActionScript 3, чтобы узнать, как это достигается. Попробуйте этот для начала

Если бы Page1 был фильмом, возможно ли это автоматически закрыть его после заканчивает играть?

Да, это также возможно, и снова я бы использовал тот же метод, как указано выше. Отправьте событие в последнем кадре (или когда, по крайней мере, вы знаете, что последний кадр был достигнут), которое говорит его родителю, что-то сделать.

0 голосов
/ 04 марта 2009

Решение:

со страницы 1:

// Dispatch a "pageFinish" event to the loader/parent/container if any
if (loaderInfo.loader)
    loaderInfo.loader.dispatchEvent(new Event("pageFinish", true));

Из основного swf:

// Listen for the "pageFinish" event
loader.addEventListener(EVENT_PAGEFINISH, OnPageFinish);

...

private function OnPageFinish(event: Event): void
{
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...