PDA

Просмотр полной версии : onRelease у дочерних объектов


zodiak
11.04.2006, 16:34
Мне надо на одном мувике (instance name: mc) динамически создавать другие мувики и грузить туда картинки из внешних источников. И надо сделать реакцию по клику на этот динамический мувик.
Но не удается создать обработчик клика на созданном мувике! Он просто игнорится! Вот пример кода:
i = некий динамический мувик
mc = мувик на котором и надо создавать другие мувики

var i:MovieClip;
i=mc.createEmptyMovieClip('i',mc.getNextHighestDepth());
i.loadMovie('http://img.yandex.ru/i/logo-big-txt.gif');
mc.i.onRelease=function () {
trace('i click');
};

Причем пробовал и mc.i.onRelease и _root.mc.i.onRelease и _root.mc.i.onRelease и даже как в дебаге четко показанно имя этого мувика _level0.mc.i.onRelease -- все равно не работает. Идей нет =\

KPaul
11.04.2006, 17:16
После загрузки пользовательские методы, кроме обработчиков НА клипе и переменные зачищаются, поэтому вешай обработчик после загрузки, либо наследуй...

zodiak
11.04.2006, 17:22
Так обработчик сейчас написан после загрузки. Или я не так понял?

olegn
11.04.2006, 17:31
Написан-то он после строчки кода о загрузке, но ведь загрузка - событие асинхронное и уж явно реально произойдет не до, а после после определения тобою mc.i.onRelease
т.е. перезатрет, о чем тебе и говорят:drinks:

zodiak
13.04.2006, 11:28
Понял. Решил попробовать.
Не пинайте ногами, наверняка где-то просто туплю.
Сделал следующее:

var i:MovieClip;
i=mc.createEmptyMovieClip('i',mc.getNextHighestDepth());
i.loadMovie('http://img.yandex.ru/i/logo-big-txt.gif');
while(i.getBytesTotal() > i.getBytesLoaded())
{
trace(i.getBytesLoaded());
}
trace('Loading finished. Loaded ' + i.getBytesLoaded() + ' bytes');
mc.i.onRelease=function () {
trace('i click');
};

i.getBytesTotal и i.getBytesLoaded всегда равны нулю. =\
пробовал ловить mc.getBytesTotal и Loaded соответственно - не изменяется. В том смысле, что ДО вызова loadMovie и после это значение не меняется. В _root тоже самое. В какую сторону копать?

ReN
14.04.2006, 02:41
В mc создаеш i. Туда грузиш картинку. В томже mc создай кнопку, на которую повесиш onRelease. И код будет работать, и картинка грузится...

zodiak
14.04.2006, 15:33
Почти так и сделал! Спасибо! =)