![]() |
Как узнать, что "залипло" на мышке?
Можно ли стандартными методами сделать проверку, есть ли в данный момент что-то на мышке, т.е. перетаскивается ли что-нибудь с помощью startDrag() и если перетаскивается, то что именно?
|
в случае если мало объектов, то можно проверить хиттестом к примеру ...
|
Цитата:
А учитывая, что приходится работать с множеством классов, то не хотелось бы в одних классах ссылаться на другие для осуществления такой проверки. Можно, конечно, завести объект, в который при startDrag() будет передаваться состояние "занято" и, если надо, данные о том, что конкретно зависло на мыше, а при stopDrag() будет писаться состояние "свободно", и все остальные классы будут обращаться к этому объекту для проверки, но чисто для общего развития хотелось бы знать, есть ли какие-то "вшитые" методы? |
стандартных методов нет..
можно переопределить startDrag/stopDrag, с тем чтобы хранить текущий таскаемый мувик в _global.currentDrag, например: Код:
MovieClip.prototype.startDrag = function() { |
Цитата:
Код:
ASnative(900, 20).apply(this,arguments); |
да ничего страшного не происходит: к вызвавшему мувику применяются нативные методы (startDrag/stopDrag ), но при этом еще сохраняется/обнуляется ссылка на него
|
Цитата:
Спасибо!))) |
нативные в смысле родные, встроенные в плеер
доступ к ним возможен и как положено по документации (startDrag, напр.) и через недокументированную функцию ASnative() чтобы сохранить родной функционал MovieClip.prototype.startDrag в новом определении как раз и нужен ASnative() ps предостережение: подобные вещи работают и зачастую это очень удобно, но любое использование недокументированных фич (да и любых хаков) чревато непонятками ( и в общем-то считается дурным тоном у солидных кодеров), особенно если проект не сольный : кто-там чего напереопределял, поди потом разберись.. |
Цитата:
Т.е., вместо того, чтобы "ломать" класс MovieClip, можно сделать свой класс, расширяющий класс MovieClip, в котором переопределить startDrag()/stopDrag(), точнее, дописать их функционал к уже имеющемуся - можно ведь так? |
ага, примерно так..
"примерно" потому, что легально дописать функционал к startDrag()/stopDrag() в классе все равно не получится, но никто не мешает предусмотреть в нем сохранение ссылки на таскаемой мувик во всех ситуациях, связанных со startDrag() и т.п. UPD: сори, погорячился, в классе получится и 'легально' Код:
class MyMC extends MovieClip |
| Часовой пояс GMT +4, время: 16:45. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.