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

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

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

Регистрация: Feb 2011
Сообщений: 1
По умолчанию Перетаскивание мышью по одной оси координат

Ситуация: в аудио-плеере есть горизонтальная линия изменения громкости звука. Она состоит из трэка и ползунка. Ползунок - это отдельный спрайт, который движется по трэку.

Вопрос: как разрешить ползунку двигаться только по оси X? В ActionScript 2.0 для этого можно было указать соответствующие параметры в startDrag, но в ActionScript 3.0 для startDrag эти параметры убрали.

В настоящее время удалось только сделать следующий вариант: при MOUSE_DOWN ползунок двигается за мышью по всей сцене, а при MOUSE_UP возвращается на трэк. Этот вариант, как вы понимаете, меня не устраивает.

Старый 12.02.2011, 16:15
Flashrunner вне форума Посмотреть профиль Отправить личное сообщение для Flashrunner Найти все сообщения от Flashrunner
  № 2  
Ответить с цитированием
Flashrunner

Регистрация: Sep 2010
Сообщений: 47
Цитата:
Вопрос: как разрешить ползунку двигаться только по оси X? В ActionScript 2.0 для этого можно было указать соответствующие параметры в startDrag, но в ActionScript 3.0 для startDrag эти параметры убрали.
в ActionScript 3.0 startDrag есть параметр bounds:Rectangle, смотрите доки по нему.
Цитата:
В настоящее время удалось только сделать следующий вариант: при MOUSE_DOWN ползунок двигается за мышью по всей сцене, а при MOUSE_UP возвращается на трэк. Этот вариант, как вы понимаете, меня не устраивает.
Кто заставляет вас двигать его за мышью по всей сцене? Двигайте только по Х...

Старый 12.02.2011, 16:37
3p.station вне форума Посмотреть профиль Отправить личное сообщение для 3p.station Найти все сообщения от 3p.station
  № 3  
Ответить с цитированием
3p.station
 
Аватар для 3p.station

блогер
Регистрация: Oct 2009
Адрес: кочевник. Киев
Сообщений: 453
Записей в блоге: 5
очень глючная тема этот стартдраг

я обычно пользуюсь чем то таким
Код AS3:
         private function initListeners(event:Event):void
		{
			_scroll.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
		}
 
		private function onDown(event:MouseEvent):void
		{
			_xOffset =  mouseX -_scroll.x; 
			stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
			addEventListener(Event.ENTER_FRAME, render);
		}
 
		private function render(event:Event):void
		{
			if(_scroll.x >= 0 && _scroll.x <= _track.width - _scroll.width)
			{
				_scroll.x = mouseX - _xOffset;
			}
			if(_scroll.x < 0)_scroll.x = 0;
			if(_scroll.x > _track.width - _scroll.width)_scroll.x = _track.width - _scroll.width;
		}
 
		private function onUp(event:MouseEvent):void
		{
			stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
			removeEventListener(Event.ENTER_FRAME, render);
		}
__________________
мира и гармонии


Последний раз редактировалось 3p.station; 12.02.2011 в 16:49.
Старый 12.02.2011, 21:53
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 4  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Вот пример со СтартДрэг
Код AS3:
startDrag(false, new Rectangle(0, 0, 50, 0));
Можно использовать и обработчики событий MOUSE_UP и MOUSE_MOVE вместе с TweenLite, например. Завязка будет осуществляться к mouseX

Старый 12.02.2011, 22:21
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 5  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Я лично использую для скроллеров вариант аналогичный решению 3p.station'а (пост №3).
Тем более, что функция расчета смещения с учетом границ все равно нужна, когда привязываешь скролер к колесику мыша. Так что никакого выигрыша при использовании startDrag/stopDrag применительно к скроллерам нет. Даже наоборот.

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

Теги
startdrag , перетаскивание
Опции темы
Опции просмотра

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

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


 


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


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