в AS3, как использовать this.parent! = null для обнаружения автономного запуска SWF или если в родительском SWF - PullRequest
0 голосов
/ 25 июля 2010

У меня есть SWF-файл оболочки, который я использую для навигации по серии SWF-файлов.Когда я хочу протестировать или запустить автономный SWF-файл, я хочу обнаружить отсутствие родительского объекта и найти XMLS или изображения по локальному пути.Если я запускаю родительский SWF-файл, я понимаю, что пути являются реальными.

Код, приведенный ниже, работает, потому что this.parent оценивается как [объектная стадия]

if (this.parent != null) {

 xmlURL = "TheProtocol/" + sevencharid + "/xml/clientconversation.xml";
 trace("in top");
} else {

 xmlURL = "xml/clientconversation.xml";
 trace("in bot");
}

1 Ответ

3 голосов
/ 25 июля 2010

Вы можете проверить, является ли родитель сценой:

if(this.parent is Stage) {
    trace("standalone swf");
} else {
    trace("not standalone swf");
}

Это должно работать, если этот код выполняется из корня.

Альтернатива, которая будет работать не только с правами root:

if(this.root.parent is Stage) {
    trace("standalone swf");
} else {
    trace("not standalone swf");
}

Это будет работать, пока объект добавляется в список отображения (в противном случае this.root будет нулевым).

Если вы хотите учесть это, тогда вы можете сделать:

if(this.root) {
    if(this.root.parent is Stage) {
        trace("standalone swd");
    } else {
        trace("not standalone swf");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...