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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.12.2011, 20:06
ChieF_Of_ReD вне форума Посмотреть профиль Отправить личное сообщение для ChieF_Of_ReD Найти все сообщения от ChieF_Of_ReD
  № 1  
Ответить с цитированием
ChieF_Of_ReD
[+1 08.12.11]
 
Аватар для ChieF_Of_ReD

Регистрация: Nov 2011
Адрес: www.leningradspb.ru
Сообщений: 10
Question Zoom out, zoom in, tween

Доброе утро, вечер, день.

Есть замечательная весчь под названием tween. Возможности позволяют решить очень много проблем с движением объектов. Но есть одна задача которую я не могу решить.


У нас есть карта, в карте имеется балун (шарик).

При загрузке карты она центруется по шарику. Есть две кнопки "zoom +" и "zoom -". соответсвенно увеличивающие и уменьшающие масштаб на +-150.

Проблема в то что при изменение _xscale и y_scale для tween . Масштаб меняется от центра объекта "карта". И помимо масштаба фокус с шарика уезжает в разные стороны (в зависимости от расстояния до центра карты).
Задача зум ин, зум аут, относительно шарика.
примерное решение я вижу - в свойства tween'a можно как-то прописывать формулу изменения движения. Возможно там можно пропистаь необходимое условие, но это просто догадка.

С радостью послушаю Ваши мысли по данному вопросу.
С уважением Артём

Старый 07.12.2011, 20:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Нужно также менять координаты _x и _y шарика по мере изменения _xscale и _yscale - для корректировки.
Теми же твинами, например.
Дельты вычислять в зависимости от масштабирования.
__________________
Идите первым!

Старый 08.12.2011, 02:01
ChieF_Of_ReD вне форума Посмотреть профиль Отправить личное сообщение для ChieF_Of_ReD Найти все сообщения от ChieF_Of_ReD
  № 3  
Ответить с цитированием
ChieF_Of_ReD
[+1 08.12.11]
 
Аватар для ChieF_Of_ReD

Регистрация: Nov 2011
Адрес: www.leningradspb.ru
Сообщений: 10
Цитата:
Сообщение от mooncar Посмотреть сообщение
Нужно также менять координаты _x и _y шарика по мере изменения _xscale и _yscale - для корректировки.
Теми же твинами, например.
Дельты вычислять в зависимости от масштабирования.
Этим я занимался весь сегодняшний день. Но пока каких-то видимых результатов достигнуто не было.К сожалению не могу сообразить какую формулу прикрутить для для изменения _x & _y наверно это из-за непонимания некоторых важных моментов в работе tween'a

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Ну вот поживому надергал

Код AS1/AS2:
var path = this
var CLK:Object					// ZOOM PISITION
var CLK2:Object					// ZOOM PISITION 2
 
function changePOS(){
	CLK2 = { x:MAP._xmouse, y:MAP._ymouse }
 
	MAP._x += (CLK2.x - CLK.x)*MAP._xscale/100
	MAP._y += (CLK2.y - CLK.y)*MAP._xscale/100
}
 
function zoom_func() {
	calc = zoom_procent
	TweenLite.to( MAP, 0.5, { _xscale:calc, _yscale:calc, onUpdate:changePOS })
}
 
 
any_clip.onMouseMove = function(){
	CLK = { x:path.MAP._xmouse, y:path.MAP._ymouse }
}
 
any_clip.onMouseWheel = function(varDelta:Number, mc) {
	path.zoom_func()
}
Суть - CLK - точка от которой начали масштабировать, CLK2 - текущая. При медленном зуме может ездить за мышью.
Ну и медленно зумим, параллельно передвигая карту куда надо в changePOS()
MAP - масштабируемый клип

Вместо координат мыши - используйте координаты шарика. Ту, где он стоял, и ту, куда он смещается.

Ну собссно как это должно выглядеть - тут http://galaxywars.ru/FM.html
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2


Последний раз редактировалось dark256; 08.12.2011 в 05:09.
Старый 08.12.2011, 19:32
ChieF_Of_ReD вне форума Посмотреть профиль Отправить личное сообщение для ChieF_Of_ReD Найти все сообщения от ChieF_Of_ReD
  № 5  
Ответить с цитированием
ChieF_Of_ReD
[+1 08.12.11]
 
Аватар для ChieF_Of_ReD

Регистрация: Nov 2011
Адрес: www.leningradspb.ru
Сообщений: 10
Таааа, когда руки кривые это диагноз.
Не получилось запустить скрипт дарка. Похоже мне надо курить мануалы в плане общей концепции построения кода. И что есть что.
Где-то тут был топик про зуминг карты относительно курсора. Я его чуток перкопатил и теперь у меня в одно действие соответственно увеличивается и уменьшается масштаб относительно шарика, при увеличение запускается ещё функция центровки.
Вывод: из-за своей криворукости, я лишаюсь красоты. Ну ничего, разберусь и прикручу)
Dark, если не трудно выложи исходник твоего кода.
__________________
Единственный комментарий к ядру сайта allcafe.ru:
// Оно просто работает.

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Да ну это не спортивно.
Идея - дана. Выложить свой код - ну точно также не поймешь и будет тебе черный ящик.
Свой код выложи тогда уж. Глянем.
Ну и к тому же я плохо и ненативно пишу - изначально испорчу стиль руку и глазомер
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 09.12.2011, 02:02
ChieF_Of_ReD вне форума Посмотреть профиль Отправить личное сообщение для ChieF_Of_ReD Найти все сообщения от ChieF_Of_ReD
  № 7  
Ответить с цитированием
ChieF_Of_ReD
[+1 08.12.11]
 
Аватар для ChieF_Of_ReD

Регистрация: Nov 2011
Адрес: www.leningradspb.ru
Сообщений: 10
Я не настаиваю)
ибо пока у меня всё должно РАБОТАТЬ, а дальше настрою как надо.
Свой *****код?)))) не, пока рано. Когда закончу хотел бы продолжить тему в плане оптимизации кода, ибо даже я вижу что ооооочень многое можно сделать по-иному, да и лишний раз что бы ресурсов не жрала.
вот в этом я надеюсь вы мне плотненько поможете. а пока просто буду советоваться)

Добавлено через 3 минуты
да и тем более когда с кодом и оптимизацией закончим, хотелось бы обобщить весь материал который проработал и сделать такой некий универсальный скриптик, который бы помог многим интересующимся, да и Вам, наверно уже поднадоело одно и тоже печатать каждый раз)
__________________
Единственный комментарий к ядру сайта allcafe.ru:
// Оно просто работает.

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

Теги
tween , zoom , зум , масштаб , масштабирование
Опции темы
Опции просмотра

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

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


 


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


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