![]() |
наследование обработчика событий?
кладем на рабочее поле клип 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. как сделать чтобы движение было асинхронным, но не вешать код на клип, а сосредоточить его в таймлайне? спасибо. |
потому что в первом варианте ошибка.
должно было быть: 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 дублируется вместе с клипом. |
Ура. Он вернулся ;)
|
спасибо.
|
| Часовой пояс GMT +4, время: 01:55. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.