Форум 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)
-   -   метод onRollOver через .prototype для мувиков в данном мувиклипе (http://www.flasher.ru/forum/showthread.php?t=115327)

ambuddy 26.08.2008 20:14

метод onRollOver через .prototype для мувиков в данном мувиклипе
 
Вот у нас есть мувиклип Tools, в котором есть куча мувиков. Хотелось бы чтобы метод onRollOver назначился для всех этих мувиков. Хочу использовать prototype, но ничего не получается. Работает только для вообще всех мувиклипов, а вот как это реализовать с помощью прототипа только внутри нужного мувиклипа???

Код:

MovieClip.prototype.onRollOver = function() { trace("!"); }
- работает вообще для всех мувиклипов(оно и понятно :)).

А вот бы что-нить типа
Код:

Tools.MovieClip.prototype.onRollOver = function() { trace("!"); }
работало. Как это сделать?

BBOY Ильич 26.08.2008 21:07

Код:

MovieClip.prototype.RollOver = function() { this.onRollOver = function (){trace("!"); }};

Tools.RollOver();


ambuddy 27.08.2008 13:13

т.е. все равно придется для каждого внутреннего мувика назначать:
Код:

Tools.brush.RollOver();
или перебирать их for(i in Tools)? Тогда смысл в прототипе?

Смысл моего вопроса был в том, чтобы любой созданный/имеющийся мувиклип внутри Tools имел onRollOver = function (){ trace("!"); } по умолчанию, т.е. чтобы не надо было это специально присваивать.

chingachgoog 27.08.2008 14:07

Создайте свой класс (функцию).
В прототипе этого класса назначьте свой обработчик.
Циклом в Tools перебираете мувики и назначаете указатель __proto__ в них на прототип своего класса.

Или другой вариант - в вашем коде выше, ставите в обработчике условие-проверку _parent - если это Tools - то выполняется действие.

ambuddy 27.08.2008 14:16

Цитата:

Сообщение от chingachgoog (Сообщение 760510)
Циклом в Tools перебираете мувики и назначаете указатель __proto__ в них на прототип своего класса.

хм... Вы мой предыдущий пост читали?:) Чтобы не приходилось назначать это с использованием цикла. Это так перебором можно и без прототипов всяких обойтись :mosking: Что я раньше всегда и делал. А вот тут решил разобраться с прототипами.

Цитата:

Сообщение от chingachgoog (Сообщение 760510)
Или другой вариант - в вашем коде выше, ставите в обработчике условие-проверку _parent - если это Tools - то выполняется действие.

А вот в этом есть рац.зерно :) Наверное так и придется делать...

chingachgoog 27.08.2008 14:43

Цитата:

Сообщение от ambuddy (Сообщение 760513)
хм... Вы мой предыдущий пост читали?:)

Ага, читал. Вы там не поняли зачем нужны прототипы.

Цитата:

Сообщение от ambuddy (Сообщение 760513)
Чтобы не приходилось назначать это с использованием цикла. Это так перебором можно и без прототипов всяких обойтись

Конечно можно.
Но с прототипами (классами) быстрее и рациональнее, как только число обработчиков будет больше одного :)


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

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