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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.07.2010, 20:07
greenhill вне форума Посмотреть профиль Отправить личное сообщение для greenhill Посетить домашнюю страницу greenhill Найти все сообщения от greenhill
  № 1  
Ответить с цитированием
greenhill
 
Аватар для greenhill

Регистрация: Mar 2009
Сообщений: 281
Отправить сообщение для greenhill с помощью ICQ
По умолчанию Изменение изображения путем перемещения маркера

Здравствуйте
Подскажите, пожалуйста, как реализовать изменение высоты и ширины изображения, путем передвижения маркера.
Изображение подгружено в спрайт.

Спасибо
__________________
http://zenpro.blogspot.com/

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

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

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
если я правильно понял задачу..
например, для случая если маркер находится в нижнем правом углу изображения
Код AS1/AS2:
img.width = marker.х - img.х;
img.height = marker.y - img.y;
это при условии, что img имеет нулевую координату в своем левом верхнем углу и img и marker находятся в одном координатном пространстве, если нет, то пересчитывать локальные координаты в глобальные..
__________________
freelance | Раздор

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

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

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Event.ENTER_FRAME напрашивается... можно по MouseEvent.MOUSE_MOVE

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

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

Старый 21.07.2010, 01:47
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 7  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Ну так проверяйте каждый раз, не выходит ли маркер за допустимые координаты. Или startDrag вам в помощь с заданием ограничений (подробнее в хелпе все расписано, но это только для ортогональных системы координат, соответственно, можете двигать маркер в своем прямоугольнике заданном). Если надо только по диагонали и никак иначе - пишите сами. Обычно при этом надо контролировать одно направление (например, большее - запоминаете предыдущее значение и сравниваете по x и y, маркер ушел дальше), по нему высчитывать scale по одной оси и делать такой же по другой.

Update: подумал, что большее значение и не к чему, просто смотрите, куда у вас идет маркер по оси X, а дальше двигайте его по Y исходя из соотношения сторон картинки. Но будьте готовы к тому, что в этом случае часто будет курсор уходить с маркера, в зависимости от движений мыши...


Последний раз редактировалось Hidest; 21.07.2010 в 01:49.
Старый 21.07.2010, 04:00
derhab вне форума Посмотреть профиль Отправить личное сообщение для derhab Найти все сообщения от derhab
  № 8  
Ответить с цитированием
derhab
 
Аватар для derhab

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
Цитата:
Сообщение от Hidest Посмотреть сообщение
просто смотрите .. Но будьте готовы к тому, что.
а вот это правильно
__________________
freelance | Раздор

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

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

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

Регистрация: Sep 2008
Сообщений: 717
Записей в блоге: 4
Отправить сообщение для Mur4ik с помощью ICQ
Тут нет геометрии по сути. Простые арифметические действия. Есть координаты и размеры картинки. В момент опускания мыши на маркер запоминаете координаты курсора, подписываетесь событие движения мыши. Дальше двигая мышь, изменяются координаты курсора. Вычитая из текущих координат курсора сохраненные (в момент когда нажали кнопку мыши) узнаем величину на которую нужно изменить размер изображение по той или иной оси (ширину или высоту).

Меняем на эту величину размеры изображения (прибавляя то что вышло в разнице координат) и смещаем на маркер на новую позицию, ведь новые размеры опять известны и пристыковать маркер на свое место тоже не проблема.

Примерчик:
Была картинка 50х50 пикселей в координатах x=10 и y=10, взялись за нижний центральный маркер (т.е. нажали кнопку мыши), запомнили координаты мыши (это примерно x=35 и y=60) и отодвинули мышь вниз на координты x=40 (это мы не учитываем, т.к. нас только высота интересует) и y=75. Теперь считаем 75-60=15, значит высоту картинки нужно изменить на 15 пикселей (yourImage.height +=15) и смещаем маркер на координаты x=35 и y=75. Повторяем эти операции пока не отпустим кнопку мыши.
__________________
trace("Остановите Землю, я сойду!!!");

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

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

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


 


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


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