PDA

Просмотр полной версии : Обработчик событий


undeddy
13.05.2007, 06:57
Мувиклип аттачится программно, когда пользователь совершает определенные действия. Тогда каким образом приписать обработчик событий к этому программно созданному мувиклипу?

screamge
13.05.2007, 07:48
точно также как и к неотаченному

[ссылка на объект].onEvent = function ...

undeddy
13.05.2007, 08:22
Но ведь аттачится мувиклип не сразу после загрузки приложения, а после совершения пользователем некоторых действий. Поэтому обычным образом обработчик событий не приписать. Он не действует тогда.

screamge
13.05.2007, 08:34
мувик который аттачится ведь есть на сцене?

undeddy
13.05.2007, 08:47
В том-то и дело, что нет.

screamge
13.05.2007, 08:58
когда аттачите тогда и вешайте на него обработчика, а вообще я заюзал бы класс для аттачащегося.

И вообще как вы аттачите если клипа нет на сцене и он не экспортируется в первом кадре?

undeddy
13.05.2007, 09:25
Нет, он экспортируется в первый кадр.

Выходит, что нужно применять конструкцию "обработчик в обработчике", если без использования класса для аттачевающегося ?

Kikasso
13.05.2007, 10:34
или аттачить с initObj:
function testPress():Void{ trace(this + " pressed"); }
function testRelease():Void{ trace(this + " released"); }
var initObj:Object = {
onPress:testPress,
onRelease:testRelease
}
attachMovie("mc","mc",1,initObj);
initObj может быть один на много мувиков

Но я не пойму, что может сделать пользователь, что обработчик не вешается? Флеш закрывает?

undeddy
13.05.2007, 10:54
Я недосказал. Дело в том, что в том клипе, который аттачится, есть еще несколько мувиклипов. И обработчик нужно привязать к одному из этих вложенных клипов.
К самому аттачивающемуся клипу привязать обработчик я с вашей помощью смог. А вот как привязать обработчик к вложенным клипам?
Можно, конечно, написать обработчики в аттачивающемся клипе, но мне нужно повесить обработчики в 'главном' клипе. 'главный' - тот, куда аттачивается мувиклип.

lowka
13.05.2007, 12:39
var depth = 0;
var mc = this.attachMovie("movie", "mc", depth);
mc["innerMC"].onPress = ...

undeddy
13.05.2007, 15:08
Благодарю. Я наконец-то нашел в чем у меня проблема на самом деле была. Вот в чем.
На клип (со вложенными клипами), который аттачится, повешен обработчик события onRollOver в 'главном' мувике (в который аттачится клип). В этом же 'главном' клипе повешен обработчик этого же события onRollOver на один из вложенных клипов. Видимо происходит какое-то перекрывание и обработчик этого события, повешенный на вложенный клип не выполняется. Выполняется только обработчик события аттачивающегося мувика.
А каким тогда образом можно установить синхронность выполнения обработчиков?

etc
13.05.2007, 15:25
Не вкладывать мувики друг в друга.