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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.07.2010, 14:39
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 11  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
2 Mur4ik
Это же только тогда, когда длина полоски перетаскивания маркера равна той стороне, которую изменяет маркер, верно?

2 greenhill
Вообще нужно вычислить, чему равны пиксели в одном проценте от длины трека бегунка, затем перевести в десятичную дробь и текущее положение бегунка разделить на полученное значение. Получается, что если бегунок находится по середине трека, что означает 100%, и мы его двигаем, скажем, вверх, то должно произойти уменьшение картинки, то есть будет меньше 100%. Так же и наоборот.

координатаБегунка / (общаяДлинаТрека / 100)) / 100)
Вот как-то так я реализовывал скролл громкости.
__________________
тут я

Старый 21.07.2010, 14:42
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 12  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
2 КорДум, при чем здесь скролл?
Я так понял маркеры имеются ввиду как по типу в графических редакторах (маленькие квадратики по углам и центрам сторон изображения, таская которые, меняются параметры изображения).
__________________
trace("Остановите Землю, я сойду!!!");

Старый 21.07.2010, 14:44
greenhill вне форума Посмотреть профиль Отправить личное сообщение для greenhill Посетить домашнюю страницу greenhill Найти все сообщения от greenhill
  № 13  
Ответить с цитированием
greenhill
 
Аватар для greenhill

Регистрация: Mar 2009
Сообщений: 281
Отправить сообщение для greenhill с помощью ICQ
это вроде ясно, а как двигать маркер, но чтоб он при этом двигался только по диагонали, под углом 45 градусов?
__________________
http://zenpro.blogspot.com/

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

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от greenhill Посмотреть сообщение
это вроде ясно, а как двигать маркер, но чтоб он при этом двигался только по диагонали, под углом 45 градусов?
Очевидно нужно прибавлять на одинаковую величину и по "x" и по "y". Только знаки могут быть разным в зависимости от направления.
Например чтоб двигать вверх-вправо нужно
Код AS3:
marker.x += 20;
marker.y -= 20;
__________________
trace("Остановите Землю, я сойду!!!");


Последний раз редактировалось Mur4ik; 21.07.2010 в 14:49.
Старый 21.07.2010, 14:48
greenhill вне форума Посмотреть профиль Отправить личное сообщение для greenhill Посетить домашнюю страницу greenhill Найти все сообщения от greenhill
  № 15  
Ответить с цитированием
greenhill
 
Аватар для greenhill

Регистрация: Mar 2009
Сообщений: 281
Отправить сообщение для greenhill с помощью ICQ
На одинаковую величину?
Но так ничего не меняется по сути. Надо чтоб маркер двигался по линии, когда я его двигаю. Чтоб за границы этой линии он не выходил. То есть его движения ограничены линией под 45 градусов. Что-то я не понимаю, сори
__________________
http://zenpro.blogspot.com/

Старый 21.07.2010, 14:57
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 16  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Цитата:
Сообщение от greenhill Посмотреть сообщение
На одинаковую величину?
Но так ничего не меняется по сути. Надо чтоб маркер двигался по линии, когда я его двигаю. Чтоб за границы этой линии он не выходил. То есть его движения ограничены линией под 45 градусов. Что-то я не понимаю, сори
Например ваш маркер находится в координатах 10,10 и вам нужно двигать его вправо-вверх под углом 45 градусов, значит нужно к текущей "х" координате прибавлять некую величину (назовем ее offset), а к текущей "у" координате прибавлять -offset (потому что положительные значения по "y" направлены вниз, а двигать нам нужно верх).

Код AS3:
// вправо-вверх
marker.x += offset;
marker.y -= offset;
 
// вправо-вниз
marker.x += offset;
marker.y += offset;
 
// влево-вверх
marker.x -= offset;
marker.y -= offset;
 
// влево-вниз
marker.x -= offset;
marker.y += offset;
Т.е. смещая на одинаковые расстояния положение маркера вы ограничиваете его линией, которая как раз и направлена под углом 45 градусов.
Но это в случае если изображение у вас квадратное всегда.
__________________
trace("Остановите Землю, я сойду!!!");


Последний раз редактировалось Mur4ik; 21.07.2010 в 15:02.
Старый 21.07.2010, 15:03
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 17  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
2 Mur4ik
ууу, точно, пардон.
__________________
тут я

Старый 21.07.2010, 15:08
greenhill вне форума Посмотреть профиль Отправить личное сообщение для greenhill Посетить домашнюю страницу greenhill Найти все сообщения от greenhill
  № 18  
Ответить с цитированием
greenhill
 
Аватар для greenhill

Регистрация: Mar 2009
Сообщений: 281
Отправить сообщение для greenhill с помощью ICQ
Ага, это вроде понятно.
Чтоб просто двигать объектом у меня был такой когд:
Код AS3:
private function markerDown(event:MouseEvent){
	var sprite_marker:Sprite = Sprite(event.target);
	sprite_marker.startDrag();
            sprite_marker.addEventListener(MouseEvent.MOUSE_MOVE, markerMove);      
		}
 
	private function markerUp(event:MouseEvent){
            var sprite_marker:Sprite = Sprite(event.target);
            sprite_marker.stopDrag();
			sprite_marker.removeEventListener(MouseEvent.MOUSE_MOVE, markerMove);
		}
 
	private function markerMove(event:MouseEvent):void {
               event.updateAfterEvent();
 
        }
Чтоб мне перемещать по диагонали, стартДраг мне уже не нужен. На что мне его заменить?
__________________
http://zenpro.blogspot.com/

Старый 21.07.2010, 15:45
Mur4ik вне форума Посмотреть профиль Отправить личное сообщение для Mur4ik Найти все сообщения от Mur4ik
  № 19  
Ответить с цитированием
Mur4ik
ветеран форума

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
убирайте sprite_marker.start/stopDrag();

вместо
Код AS3:
sprite_marker.addEventListener(MouseEvent.MOUSE_MOVE, markerMove); 
...
sprite_marker.removeEventListener(MouseEvent.MOUSE_MOVE, markerMove);
нужно
Код AS3:
stage.addEventListener(MouseEvent.MOUSE_MOVE, markerMove); 
...
stage.removeEventListener(MouseEvent.MOUSE_MOVE, markerMove);
и в markerMove меняйте размеры изображения и относительно измененных размеров изображения меняйте положение вашего маркера.
Вложения
Тип файла: zip simpleSample.zip (12.2 Кб, 32 просмотров)
__________________
trace("Остановите Землю, я сойду!!!");


Последний раз редактировалось Mur4ik; 21.07.2010 в 15:56.
Старый 21.07.2010, 16:07
greenhill вне форума Посмотреть профиль Отправить личное сообщение для greenhill Посетить домашнюю страницу greenhill Найти все сообщения от greenhill
  № 20  
Ответить с цитированием
greenhill
 
Аватар для greenhill

Регистрация: Mar 2009
Сообщений: 281
Отправить сообщение для greenhill с помощью ICQ
Спасибо огромное. Я вас уже люблю
__________________
http://zenpro.blogspot.com/


Последний раз редактировалось greenhill; 21.07.2010 в 16:28.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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