![]() |
Мышь покидает рабочее поле
Как узнать когда мышь покидает пределы рабочего поля ролика? Эт в принципе очень важно ...
Можно конечно обходными путями, реализуя внешнюю связь с JavaScript, но это плохое решение. Есть что-то "стандартное" для решения этой проблемки? |
Код:
someListener = new Object(); |
не поможет.
флэш-плагин следит за мышью только в пределах видимой бласти ролика. а при резком убирании курсора из области флэш-плагина, флэш не успевает засечь положение мышки, и залипают координаты курсора где-то непонятно где посередине ролика. последние, которые успели определиться. чтобы определять выход за границы ролика, придётся возиться с событиями кнопок - они срабатывают мгновенно при изменении положения курсора мыши. есть несколько способов. |
2Nox Noctis
Можно подробнее? Даже представить себе не могу чем кнопка может быть полезна в данном случае ... |
Вложений: 1
Да..., я согласен: кнопка это очень полезная вещь.
|
Цитата:
|
Цитата:
А что ты будешь делать с остальными кнопками на столе? Ты же им уши затыкаешь.... |
Цитата:
|
Так если ты ее "по низ", то тогда лежащие НАД ней объекты будут перекрывать ее. И, при попадании мыши на эти объекты, у тебя будет отрабатываться выход мышки за пределы ролика.
Так что Nox прав, говоря, что "придётся возиться с событиями кнопок". Вот посмотри мой примерчик. |
Не хрена кнопки плодить.
Скромнее надо быть. :D |
2 sergwizard: спасибо за абсолютно рабочий код, (только в конце там непонятно зачем инкрементируются высоты кнопок). Если можно, черканите пару строк-обьяснений:
1) Св-во Mouse.inner мы обьявляем сами ? 2) Mouse.watch - этого метода я нигде не встречал. 3) Что делает метод addProperty, тоже не знаю о нем ничего |
Вложений: 1
Цитата:
Открой этот исходник (я убрал все лишнее), и на его примере я попробую дать ответы на твои вопросы. Сразу предупреждаю: объясняльщик из меня хреновый, поэтому буду объяснять просто и незатейливо, - своими словами. Так что, если в чем-то ошибусь, пусть меня поправят. Код:
state_btn.useHandCursor = false;obj={}; Пишем методы, которые позднее будут наследовать все объекты класса "Button" Код:
Button.prototype.privateOnRollOut = function(){Код:
Button.prototype.addProperty("onRollOut",Код:
obj.watch("inner",Код:
MovieClip.prototype.rotIt = function(){ЗЫ. В предыдущем исходнике я инкрементировал не высоты кнопок, а изменял их положение по _y. Это я сделал, чтобы показать, что кнопки не мешают друг другу, и RollOver на вышележащую кнопку, не мешают нижележащей отслеживать это же событие. |
Все поняттно :cool:
|
надо обязательно добавить onDragOut/Over - а то легко заглючить всё это.
и есть проблема - селектабельные текстовые поля :) надо патчить.. |
ах да. и еще. прочитал наконец код :))
не особо в тему, но Код:
Button.prototype.addProperty("onRollOut", function () {и к тому же можно мувиклипу задать кнопочные события... |
Цитата:
Повторяю, я наскоро переделывал это из старого моего исходника, в котором тако-о-ое наворочено. Цитата:
Код:
Button.prototype.myOnRollOut = function(){trace("myOnRollOver of "+this+" called");};Не хрена кнопки и (селектабельные поля) плодить. Скромнее надо быть. :D Но, любым твоим замечаниям и советам буду рад. |
Самое простое, что смог придумать для селектабл TF, - вот это:
Код:
this.onMouseMove = function(){Хотя буду рад, если кто-нибудь предложит более красивый и действенный способ. |
...возможноли в место этого большого буттона (на фоне)
использовать мувиклип?...как? (я с портотипами не работал) |
небольшое дополнение к проблеме (я думаю, будет полезно новичкам, вроде меня, гуру не кидайтесь помидорами... :))
В случае таскания объекта (и утаскивания за границы клипа) вместо onRelease можно воспользоваться onMouseUp. Например, так: Код:
myMc.onMouseUp = function(){ |
>>В случае таскания объекта (и утаскивания за границы клипа) вместо >>onRelease можно воспользоваться onMouseUp.
уже есть придуманный onReleaseOutside(); |
meiciuc
блин... :) ============= впрочем то, да не то... использовал onReleaseOutside, утащил объект за край мувика, естественно, при этом объект залип где-то по дороге (ближе к пересеченному краю), а когда отпустил, то скрипт снял значения мыши там, где я ее отпустил (ну например, -500 -400). И там же появился мой объект, а так как была задействована динамика (пружина), то его движение назад выглядело неправдоподобно. С onMouseUp такого не происходит. Хотя это может я так криво написал... |
ethereal999
демонстрация вагона знаний :) |
ethereal999
кстати, на будущее эта идея пригодится тебе, если будешь перетаскивать объекты не тормозным драг-дропом и надо будет ограничивать движение клипа заданными рамками. Не забудь. |
| Часовой пояс GMT +4, время: 14:01. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.