Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   onRelease у дочерних объектов (http://www.flasher.ru/forum/showthread.php?t=78205)

zodiak 11.04.2006 16:34

onRelease у дочерних объектов
 
Мне надо на одном мувике (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

Почти так и сделал! Спасибо! =)


Часовой пояс GMT +4, время: 11:36.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.