Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   наследование обработчика событий? (http://www.flasher.ru/forum/showthread.php?t=64702)

sarcofag 10.11.2004 20:31

наследование обработчика событий?
 
кладем на рабочее поле клип my_mc.
в кадре пишем

my_mc.onEnterFrame= function () {
_x=30+random(20)
}
duplicateMovieClip(my_mc, "my_mc1", 1 );
my_mc1._y+=40;

запускаем --> два клипа двигаются синхронно.

делаем по другому: в кадре пишем

duplicateMovieClip(my_mc, "my_mc1", 1 );
my_mc1._y+=40;

а на клип вешаем

onClipEvent (enterFrame) {
_x=30+random(20);
}

запускаем --> клипы двигаются асинхронно.

1. почему так?
2. как сделать чтобы движение было асинхронным, но не вешать код на клип, а

сосредоточить его в таймлайне?

спасибо.

Nox Noctis 10.11.2004 21:17

потому что в первом варианте ошибка.
должно было быть:
my_mc.onEnterFrame= function () {
this._x=30+random(20);
}

к тому же в этом варианте дубликат не получит обработчик события. все переменные, которые были в клипе, не появятся автоматически в его дубликате, если только их там заново не создать. то есть необходимо написать:

my_mc.onEnterFrame= function () {
this._x=30+random(20);
}
duplicateMovieClip(my_mc, "my_mc1", 1 );
my_mc1._y+=40;
my_mc1.onEnterFrame = my_mc.onEnterFrame;

а во втором варианте this можно и не указывать, потому что когда делаешь onClipEvent (...) { .. }, считай что всё что в нём находится, идет в блоке tellTarget (this) { ... }

к тому же, onClipEvent дублируется вместе с клипом.

Antares 10.11.2004 21:27

Ура. Он вернулся ;)

sarcofag 11.11.2004 04:58

спасибо.


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

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