Просмотр полной версии : Сразу тянуть невиденный бегунок
NilovSerge
30.03.2007, 19:38
Всем привет!
Подскажите, пожалуйста. У меня есть бегунок и полоска. И бегунок таскается по этой полоске.
Бегунок изначально невиден. Хочется, чтобы при невидимом бегунке щелкнув мышкой на полоске не только
отобразить бегунок на месте щелчка, но и СРАЗУ бегунок забегал за мышкой. А пока что получается :
По щелчку мышки в событии onPress я отображаю бегунок и делаю ему startDrag.
Я должен отпустить мышку.
Только повторным щелчком на бегунке я начинаю его тянуть...
Очень не хочется отпускать мышку а лишний раз щелкать... Можно ли такое сделать? Если да то как ?
k - это твой бегунок
k._alpha = 30;
k.onPress = function(){
k._alpha = 100;
k.startDrag(false);
}
k.onMouseUp = function(){
k._alpha = 30;
k.stopDrag();
}
k - это твой бегунок
k._alpha = 30;
k.onPress = function(){
k._alpha = 100;
k.startDrag(false);
}
k.onMouseUp = function(){
k._alpha = 30;
k.stopDrag();
}
onMouseUp это где?
все во фрейм, ну или можешь на сам бегунок повесить, это не сложно, включай мозги =)
vadja, зачем мне мозги если у меня есть хелп? А в хелпе есть поиск. Вот сам попробуй и поймешь, с чем onMouseUp едят.
UPD:
Я к тому, что это событие вызывается, где бы ни была мышка, каждый раз когда юзер щелкает кнопкой. Тут оно еще прокатит, но в какой-нибудь момент можно нарваться. Так что или классический способ:
k.onRelease = k.onReleaseOutside = function(){
k._alpha = 30;
k.stopDrag();
}
Тут надо обрабатывать onReleaseOutside, потому что некоторые хитрые пользователи курсор в сторону уводят и там отпускают.
Или переопределять обработчики:
k._alpha = 30;
function kOnMouseUp(){
k._alpha = 30;
k.stopDrag();
k.onMouseUp = null;
}
k.onPress = function(){
k._alpha = 100;
k.startDrag(false);
k.onMouseUp = kOnMouseUp;
}
Ну или Mouse.addListener()
ишь, и сам все нашел, молодец! =)
чем мой код не понравился, до сих пор не допер (какраз такой для объектов типа бегунка и надо использовать, или я че не так понял), ну да ладно, не обязательно отвечать.
vadja, зачем мне мозги если у меня есть хелп? А в хелпе есть поиск.
правильно, зачем лишний раз напрягаться, када есть F1.
форум + хелп заменяют мозги :bb: ура, товарищи!
чем мой код не понравился, до сих пор не допер
Объясняю: события onMouseDown и onMouseUp срабатывают каждый раз, когда пользователь кливает мышкой, причем в любом месте флешки, а не только над объектом. Тестовый файл работает, все ура, вы делаете приложение в котором 20 ползунков, и все они одновременно отрабатывают каждый onMouseUp. В данном случае каждый ползунок в тысячный раз скажет stopDrag() и присвоит себе альфу 30, а если сценарий отпускания ползунка посложнее? Звякнет колокольчик, где-то что-то мигнет... Да хотя бы на курсор - мувиклип, вы кликаете, курсор отваливается.. А ползунка в кадре может вообще и не быть при этом видно.
Вот собственно и все, что я имею против onMouseUp для мувиклипа.
а условие if никогда не использовал?
в вопросе ОДИН бегунок, так что для одного бегунка мой код вполне подходит, а твое "если" вообще неуместно, потомучто я тоже могу написать типа "а если вдруг землетрясение, а у тя onMouseUp, а если вдруг инопланетяне прилетят, а у тебя на кнопке onMouseDown", не дела это все...
Неправильный подход. Если что-то делаешь, пусть хоть инопланетяне прилетят - все должно работать.
Станартная ситуация: текстовое поле с прокрутчиком спрятано, невидимо или убрано за пределы сцены, так вот onMouseDown и onMouseUp все равно срабатывают.
что ты мне доказать пытаешься?) то, что эти функции рабатывают глобально? так я знаю.
я специально это использовал, т.к. попробуй даже этот скролл броузера справа, нажми на бегунок, уведи мышку в сторону и отпусти, прокрутка остановится! такой же эффект должен быть и с любым другим бегунком, поэтому и onMouseUp в моем коде, про onMouseDown не я начал говорить... =)
кароче мне надоела эта тема.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.