Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.05.2007, 17:41
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 1  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Здравствуйте,
столкнулся с проблемой: не могу разобраться как отловить начало/конец "таскания" контента в скроллпейне.

Заранее спасибо.

Неужели никто не сталкивался?

Может быть непонятно объяснил проблему:
есть scrollPane и есть необходимость отслеживать, когда пользователь проматывает содержимое.
Таких возможностей у пользователя две:
1. Использование скроллбаров, ловится без проблем, через:
Код:
on(scroll) {
     //...
}
2. Таскание контента мышью, при scrollDrag=true.
Дак вот вопрос как раз в том, как определить то, что пользователь потащил контент мышью?

Заранее спасибо


Последний раз редактировалось etc; 17.05.2007 в 12:18.
Старый 17.05.2007, 12:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
ScrollPane какой? v2, v3, flex?

Старый 17.05.2007, 12:40
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 3  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Цитата:
Сообщение от __etc
ScrollPane какой? v2, v3, flex?
Простите, не уточнил, scrollPane v2

Старый 17.05.2007, 13:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Документацию читать нынче не модно?
http://livedocs.adobe.com/flash/9.0/main/00003452.html

Почему нельзя проверять при scroll значение scrollDrag?

Старый 17.05.2007, 14:44
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 5  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Цитата:
Сообщение от __etc
Документацию читать нынче не модно?
http://livedocs.adobe.com/flash/9.0/main/00003452.html
Читал, но боюсь, что здесь не указано как выявить начало перетаскивания контента мышкой за сам контент.
Цитата:
Сообщение от __etc
Почему нельзя проверять при scroll значение scrollDrag?
Можно, но зачем? Оно итак известно — "true".
Вопрос в том, как перехватить начало/конец "таскания за контент"

Старый 17.05.2007, 14:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Хак:

Код:
sp.scrollDrag = true;
sp.spContentHolder.onPress = function() {
	this._parent.dispatchEvent({type:'dragStart'});
	this._parent.startDragLoop();
}
sp.spContentHolder.onRelease = sp.spContentHolder.onReleaseOutside = function() {
	this._parent.dispatchEvent({type:'dragEnd'});
	delete this.onMouseMove;
}
sp — ScrollPane. Появляются два новых события dragStart и dragEnd
После этого кода лучше не трогать scrollDrag.

Старый 17.05.2007, 15:57
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 7  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Спасибо, попробовал, но вот такая кострукция:
Код:
main_pane.scrollDrag = true;
main_pane.spContentHolder.onPress = function() {
	this._parent.dispatchEvent({type:'dragStart'});
	this._parent.startDragLoop();
}
main_pane.spContentHolder.onRelease = main_pane.spContentHolder.onReleaseOutside = function() {
	this._parent.dispatchEvent({type:'dragEnd'});
	delete this.onMouseMove;
}

scrollListenter=new Object();
scrollListenter.dragEnd=function() {
trace("smth");
}

main_pane.addEventListener("dragEnd", scrollListenter);
не работает, равно как и просто на скроллпейне
Код:
on (dragEnd) {
	trace("bla");
}

Старый 17.05.2007, 21:17
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Гм, ну тогда соберите нерабочий пример, я поправлю.

Старый 18.05.2007, 13:44
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 9  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Спасибо, __etc,
начал собирать неработающий вариант и в нем все заработало, хотя в старом по прежнему тишина
В старом варианте не отрабатывается сам клик мышью, то есть код:
Код:
main_pane.spContentHolder.onRelease = main_pane.spContentHolder.onReleaseOutside = function() {
	trace("bla");
}
не к чему не приводит. Стоит просто копипастом перенести scrollPane и этот код в новый файл — все начинает работать... не могу разобраться почему может быть так...

Старый 18.05.2007, 14:05
BorisL вне форума Посмотреть профиль Отправить личное сообщение для BorisL Найти все сообщения от BorisL
  № 10  
Ответить с цитированием
BorisL

Регистрация: Jun 2004
Адрес: Екб
Сообщений: 63
Разобрался: просто scrollPane не успевал подгрузиться.
__etc, спасибо большое.

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:36.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.