PDA

Просмотр полной версии : Вызов глобальной функции (_global)


port
21.05.2008, 18:48
Здравствуйте. Подскажите, пожалуйста, каким образом можно вызвать глобальную функцию находящийся в одном MovieClip (mc1) из другого (mc2) при событии onRelease на последнем. При написании (примерно):

mc2.onRelease = function () {
_global.function1 = function () {}
}

нет даже захода внутрь функции. В AS2 вроде нельзя вешать две функции на одно и тоже события - как можно разрешить проблему? Заранее спасибо.

Alex_beginner
21.05.2008, 19:05
Цитата из книги Дмитрия Гурского:
Как, располагаясь «внутри» mov1, узнать координату по X клипа mov3? А сделать это очень просто, написав полный адрес mov3:
trace(_root.mov2.mov3._x);

Также можно получить доступ к любой функции второго клипа из первого

port
21.05.2008, 19:20
trace(_root.mov2.mov3._x);

Также можно получить доступ к любой функции второго клипа из первого

К сожалению этот метод (примерный код):
mc2.onRelease = function () {
_root.mc1.function1();
}
тоже был испробаван и не дал результата. Удавалось только до переменых function1() достучаться.

chingachgoog
21.05.2008, 20:02
Если функция указана как глобальная, т.е.
_global.function1
то она вызывается из любого места просто как function1()

А тут проблема в другом.
До того момента пока не сработает обработчик onRelease на мувике mc2, такой функции (_global.function1) вообще НЕ СУЩЕСТВУЕТ. Поэтому ее и не удасться вызвать.

port
21.05.2008, 20:27
Спасибо - простой вызов глобальной функции function1() без прописания пути сработало. Возник другой вопрос - внутри этой функции (function1()) есть onEnterFrame = function(){}, всё что до onEnterFrame выполняется , но события прописанные внутри onEnterFrame не выполняются. Могли бы вы подсказать как это можно было б решить?

Alex_beginner
22.05.2008, 11:22
А для чего, позвольте узнать, нужно onEnterFrame вставлять в функцию. Неясно. На чьей таймлайн писан код?