Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Найти функцию в одном из родителей (http://www.flasher.ru/forum/showthread.php?t=76887)

stalk 14.03.2006 17:51

Найти функцию в одном из родителей
 
Добрый день!
У меня было приложение использующее в своей работе сторонние swf типа меню и таймера.

Раньше я использовал код типа
Код:

this.PauseTime.onPress = function() {
    _root.PauseTime();
    ...
}

Но когда появился прелоадер, я этого делать уже не могу. И моя функция PauseTime() не вызывается.

пробывал типа так
Код:

this._parent._parent. ... PauseTime();
тоже что-то не очень.. вот думаю, куда потерялась моя функция и можно ли пробежаться по всем parent'ам и спросить у них типа есть у тебя такая функция ?
типа так
Код:

tmp_parent = this._parent;
while (tmp_parent != null) {
  if (tmp_parent.has_function("PauseTime")) break;
  tmp_parent = tmp_parent._parent;
}

можно ли так?

P.S. _rootlock=true сделать не могу к сожалению =(

breez38 15.03.2006 04:35

ситуацию не совсем понял. Но...
если ты хочешь вызвать из подгруженного ролика функию того ролика, куда грузил, то без lockroot не обойтись. Единственное, что можно попробовать, это прописать эту функцию в _global:
Код:

_global.PauseTime = function()
{
//твой код
}

PS А почему не можешь lockroot сделать?

meiciuc 15.03.2006 12:00

Думаю, что, как обычно и бывает в подобных случаях, был потерян путь к клипу, содержащему функцию. Нужно протрейсить пути к обоим клипам и скорректировать конечный путь к функции.

sem1313 15.03.2006 16:15

Цитата:

Сообщение от stalk
Код:

this._parent._parent. ... PauseTime();
(

Попробуй убрать this. Я всегда так поступаю, можно обратиться к любому вложению из любого мувика. Посмотри сколько у тебя вложений друг в друга до мувика из которого ты вызываешь функцию, столько parent'ov и нужно будет установить. Если функция в самом первом(изначальном) мувике, то просто используй root.

И усё... :)


Часовой пояс GMT +4, время: 11:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.