PDA

Просмотр полной версии : onRelease для динамически создаваемых movieclip'ov


sher83
01.09.2005, 00:02
Есть код типа:

target_mc.onRelease = function () {
trace("onRelease called");
};

Он у меня почему-то упорньо не хочет работать с мувиклипами, которые создаются командой:

createEmptyMovieClip("target_mc", _root.getNextHighestDepth());

Что делать?

iNils
01.09.2005, 00:04
надо сначала создать клип, а потом присвоить ему обработчик события.

sher83
01.09.2005, 00:10
Да, я именно так и делаю. Если быть точным, то вот кусок кода, который не работает:

for(i=1; i <= imgs_qty; i++) {
createEmptyMovieClip("target_mc"+i, _root.getNextHighestDepth());
target_mc = eval("target_mc"+i);

mc_url = eval("t_image"+i);
loadMovie(mc_url, target_mc);

target_mc._x = 4;
target_mc._y = +y;

y += 57;
}

target_mc1.onRelease = function (){
trace("onRelease called");
};

iNils
01.09.2005, 00:21
а картинка грузится?

sher83
01.09.2005, 00:22
да, картинка грузится нормально.

sher83
01.09.2005, 00:23
сначала это все было запихано в мувиклип, но я специально вытащил все в рут, т.к. прочитал, что иначе onRelease работать не будет.

iNils
01.09.2005, 00:33
сначала это все было запихано в мувиклип, но я специально вытащил все в рут, т.к. прочитал, что иначе onRelease работать не будет.
Глупости.

Все понял в чем проблема. Меня чего то переклинило. Картинка грузится не мгоновенно. Нужно некое время.
Ты начал загрузку, но картинка еще не успела загрузится, как ты повесил на неее обработчик события.
А когда картинка загрузилась, то она удаляет весь код который на мувик был повешен. В том числе и обработчик события.

Выход:
1. Ждать пока картинка загрузится, а потом вешать.
2. В созданном мувике создать еще один пустой. И грузить в него. А обработчик вешать на родителя.

sher83
01.09.2005, 00:47
Изменил код на этот и картинки перестали грузиться:

for(i=1; i <= imgs_qty; i++) {
createEmptyMovieClip("target_mc"+i, _root.getNextHighestDepth());
target_mc = eval("target_mc"+i);
trace(target_mc+" created.");

createEmptyMovieClip("container_mc", _root.target_mc.getNextHighestDepth());
trace(container_mc+" created.");

mc_url = eval("t_image"+i);
loadMovie(mc_url, _root.target_mc.container_mc);
trace("image loaded");

target_mc._x = 4;
target_mc._y = +y;

y += 57;
}

sher83
01.09.2005, 00:49
container_mc почему-то не хочет создаваться внутри target_mc.

sher83
01.09.2005, 01:16
спасибо iNils!!! Ты был прав, надо создавать еще 1 вложенный мувиклип!!!! :) :cool: