Показать сообщение отдельно
Старый 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.