Как создать глобальное событие OnClick во Flash AS2? - PullRequest
0 голосов
/ 25 февраля 2010

У меня есть приложение Flash AS2, которое состоит из многих SWF-файлов. Мне нужно создать событие OnClick в контейнере SWF, которое будет работать для каждого вызываемого SWF. Я стараюсь не добавлять код в каждый SWF (более 100).

В настоящее время я могу получить доступ к щелчку в контейнере для первого SWF-файла, но при вызове второго SWF-файла контейнер перезаписывается.

this._lockroot = true;

this.onMouseUp = function(){
    //if not on login
    getURL("javascript:clickTest();");
};

//load swf
loadMovie("test.swf","_level2");

Как сделать так, чтобы щелчок в контейнере срабатывал, даже если SWF внутри контейнера вызывает другой SWF?

Это казалось таким простым, но было кошмаром. Это вообще возможно?

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

Edit (re: comments, onClipEvent shenanigans не работает)

Как насчет того, чтобы попробовать что-то вроде этого:

this.createEmptyMovieClip("holder", this.getNextHighestDepth());
loadMovie("test.swf","holder");

вместо:

//load swf
loadMovie("test.swf","_level2");

Или, если _level2 необходим для структуры приложения, что-то вроде этого:

_level2.createEmptyMovieClip("holder", _level2.getNextHighestDepth());
_level2.holder.loadMovie("test.swf");

Я только что попробовал это с двухуровневой вложенной загрузкой, и он поддерживал обработчик щелчков на верхнем уровне (в то время как использование loadMovie без держателя не выполнялось). Я не уверен, что сделанные мной предположения соответствуют структуре ваших вложенных SWF, но на данный момент это мое лучшее предположение.

0 голосов
/ 25 февраля 2010

Вы можете получить мувиклип, например, с именем. clickHaver на верхнем слое (любой ценой) - если второй фильм (и каждый следующий) загружает в себя следующий фильм:

- container
  - loads movie.swf
    - loads movie2.swf

тогда ваша единственная задача - держать clickHaver сверху после загрузки первого фильма, поскольку каждый следующий загружает другой файл .swf сам по себе.

...