![]() |
|
||||||||||
|
|||||
|
2 sergwizard: спасибо за абсолютно рабочий код, (только в конце там непонятно зачем инкрементируются высоты кнопок). Если можно, черканите пару строк-обьяснений:
1) Св-во Mouse.inner мы обьявляем сами ? 2) Mouse.watch - этого метода я нигде не встречал. 3) Что делает метод addProperty, тоже не знаю о нем ничего
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Цитата:
Открой этот исходник (я убрал все лишнее), и на его примере я попробую дать ответы на твои вопросы. Сразу предупреждаю: объясняльщик из меня хреновый, поэтому буду объяснять просто и незатейливо, - своими словами. Так что, если в чем-то ошибусь, пусть меня поправят. Создаем неопределенный объект (в прошлом исходнике я использовал для этого объект "Mouse"). obj={}; Пишем методы, которые позднее будут наследовать все объекты класса "Button" Button.prototype.privateOnRollOut = function(){
obj.inner = false;
}
Button.prototype.privateOnRollOver = function(){
obj.inner = true;
}
Button.prototype.addProperty("onRollOut",
function(){
this.privateOnRollOut();
}, null
)
Button.prototype.addProperty("onRollOver",
function(){
this.privateOnRollOver();
}, null
)
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 на вышележащую кнопку, не мешают нижележащей отслеживать это же событие.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) Последний раз редактировалось sergwizard; 20.05.2004 в 22:36. |
|
|||||
|
Все поняттно
![]()
__________________
Краткость - сестра таланта, если она не единственный ребенок в семье |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
надо обязательно добавить onDragOut/Over - а то легко заглючить всё это.
и есть проблема - селектабельные текстовые поля :) надо патчить.. Последний раз редактировалось Nox Noctis; 21.05.2004 в 14:33. |
|
|||||
|
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
ах да. и еще. прочитал наконец код :))
не особо в тему, но Button.prototype.addProperty("onRollOut", function () {
trace("onRollOut of "+this+" called");
}, function (f) {
if (typeof (f) == "function") {
this.myOnRollOut = f;
}
});
Button.prototype.addProperty("onRollOver", function () {
trace("onRollOver of "+this+" called");
}, function (f) {
trace("onRollOut of "+this+" called");
});
// 'btn' -- some button
trace(btn.onRollOver+" : "+typeof btn.onRollOver);
trace(btn.onRollOut+" : "+typeof btn.onRollOut);
//
и к тому же можно мувиклипу задать кнопочные события... |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Цитата:
Добавить onDragOut/Over – не проблема. А вот с селектабельными TF я пока не вижу способа. То есть я вижу как поправить на setFocus, но этого –явно – недостаточно.Повторяю, я наскоро переделывал это из старого моего исходника, в котором тако-о-ое наворочено. Цитата:
Button.prototype.myOnRollOut = function(){trace("myOnRollOver of "+this+" called");};
Button.prototype.myOnRollOver = function(){trace("myOnRollOut of "+this+" called");};
Button.prototype.addProperty("onRollOut", function () {
this.myOnRollOut();
}, null
);
Button.prototype.addProperty("onRollOver", function () {
this.myOnRollOver();
}, null
);
// 'btn' -- some button
btn.myOnRollOver = function(){ //Попробуй то же самое с btn.onRollOver
//for(a in btn){
// trace(a + ":"+ typeof(a));
//}
if(typeof (this.myOnRollOver) == "function")
//Затем попробуй написать вместо "function" - "string"
trace("this is a : "+ typeof this.myOnRollOver)
}
Не хрена кнопки и (селектабельные поля) плодить. Скромнее надо быть. Но, любым твоим замечаниям и советам буду рад.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Самое простое, что смог придумать для селектабл TF, - вот это:
this.onMouseMove = function(){
if(TextField._xmouse>=0 && TextField._xmouse<=TextField._width&&TextField._ymouse>=0&&TextField._ymouse<=TextField._height){
obj.inner = true;
}
}
Хотя буду рад, если кто-нибудь предложит более красивый и действенный способ.
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
...возможноли в место этого большого буттона (на фоне)
использовать мувиклип?...как? (я с портотипами не работал) |
|
|||||
|
небольшое дополнение к проблеме (я думаю, будет полезно новичкам, вроде меня, гуру не кидайтесь помидорами...
)В случае таскания объекта (и утаскивания за границы клипа) вместо onRelease можно воспользоваться onMouseUp. Например, так:
__________________
Love & Peace! |
|
|||||
|
Регистрация: Nov 2005
Сообщений: 149
|
>>В случае таскания объекта (и утаскивания за границы клипа) вместо >>onRelease можно воспользоваться onMouseUp.
уже есть придуманный onReleaseOutside(); |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|