|
|
|||||
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
|
Цитата:
Повторяю, я наскоро переделывал это из старого моего исходника, в котором тако-о-ое наворочено. Цитата:
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, время: 06:14. |
|
« Предыдущая тема | Следующая тема » |
|
|