Цитата:
1) Св-во Mouse.inner мы обьявляем сами ?
2) Mouse.watch - этого метода я нигде не встречал.
3) Что делает метод addProperty, тоже не знаю о нем ничего
|
Открой этот исходник (я убрал все лишнее), и на его примере я попробую дать ответы на твои вопросы. Сразу предупреждаю: объясняльщик из меня хреновый, поэтому буду объяснять просто и незатейливо, - своими словами. Так что, если в чем-то ошибусь, пусть меня поправят.

Код:
state_btn.useHandCursor = false;
Создаем неопределенный объект (в прошлом исходнике я использовал для этого объект "Mouse").
obj={};
Пишем методы, которые позднее будут наследовать все объекты класса "Button"

Код:
Button.prototype.privateOnRollOut = function(){
obj.inner = false;
}
Button.prototype.privateOnRollOver = function(){
obj.inner = true;
}
Добавляем классу "Button" новые проперти: "onRollOut" и "onRollOver" . Чё говорите? У кнопок уже есть такие проперти? Ну и что, а я хочу добавить еще свои личные… И теперь, при событиях onRollOver и onRollOut, кнопки будут вызывать функции "privateOnRollOut" и " privateOnRollOver ", при этом меняя свойства "inner" у объекта "obj".

Код:
Button.prototype.addProperty("onRollOut",
function(){
this.privateOnRollOut();
}, null
)
Button.prototype.addProperty("onRollOver",
function(){
this.privateOnRollOver();
}, null
)
Заставляем объект "obj" следить за изменением значения "inner", и при изменении этого значения вызывать соответствующие функции (менять текс в текстовом поле и менять значение некоторой переменной "k").

Код:
obj.watch("inner",
function(){
txt = arguments[2] ? "inside" : "outside";
k = arguments[2] ? true : false;
}
)
Теперь, чтобы не пропадали зря вновь приобретенные свойства кнопок, используем их для вызова любых функций, которые нам нужны. Я, для примера нарисовал такую:

Код:
MovieClip.prototype.rotIt = function(){
col = new Color(this);
this.onEnterFrame = function(){
if(click){
k ? this._rotation+=5 : this._rotation-=5;
k ? col.setRGB(0xFF0000) : col.setRGB(0x0000FF);
}
}
}
mc.rotIt();
b1_btn.onRelease = function(){
click = (click+1)%2;
}
Вот, вроде, и все.
ЗЫ. В предыдущем исходнике я инкрементировал не высоты кнопок, а изменял их положение по _y. Это я сделал, чтобы показать, что кнопки не мешают друг другу, и RollOver на вышележащую кнопку, не мешают нижележащей отслеживать это же событие.