PDA

Просмотр полной версии : метод onRollOver через .prototype для мувиков в данном мувиклипе


ambuddy
26.08.2008, 20:14
Вот у нас есть мувиклип 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
Циклом в Tools перебираете мувики и назначаете указатель __proto__ в них на прототип своего класса.хм... Вы мой предыдущий пост читали?:) Чтобы не приходилось назначать это с использованием цикла. Это так перебором можно и без прототипов всяких обойтись :mosking: Что я раньше всегда и делал. А вот тут решил разобраться с прототипами.

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

chingachgoog
27.08.2008, 14:43
хм... Вы мой предыдущий пост читали?:)


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


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


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