PDA

Просмотр полной версии : Найти функцию в одном из родителей


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
this._parent._parent. ... PauseTime();
(

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

И усё... :)