Показать сообщение отдельно
Старый 14.04.2013, 00:21
kaliban92 вне форума Посмотреть профиль Отправить личное сообщение для kaliban92 Найти все сообщения от kaliban92
  № 3  
kaliban92

Регистрация: Apr 2013
Сообщений: 14
Спасибо огромное, за помощь.

Частично получилось(после нескольких десятков попыток), координаты определятся правильно. Всей логики уже не упомню, т.е сам не понимаю как работает, но работает ))

Код:
Код AS3:
package 
{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	public class Part extends MovieClip
	{
		var homeX:int;
		var homeY:int;
		var magnet:int;
		var x0:int;
		var y0:int;
		var x1:int;
		var y1:int;
 
		var distancex:int;
		var distancey:int;
		var distance:int;
 
		var powery:int;
		var powerx:int;
 
		var forcex:int;
		var forcey:int;
 
		public function Part()
		{
			this.addEventListener(Event.ADDED_TO_STAGE,addS);
		}
 
		function addS(e:Event):void
		{
			homeX=this.x;
			homeY=this.y;
			magnet=5000;
			//Слушатель добавляем после получения ссылки на stage (после добавления на экран) и именно на stage, а не на this.
			this.addEventListener(Event.ENTER_FRAME, ent_frame);
		}
 
 
		//Для приличия поменяем название обработчика
		function ent_frame(e:Event):void
		{
 
 
 
 
			x0=this.x;
			y0=this.y;
			x1=stage.mouseX;
			y1=stage.mouseY;
 
 
 
			distancex=x1-x0;
			distancey=y1-y0;
 
			distance=Math.sqrt(distancex*distancex+distancey*distancey);
 
			powerx=this.x-distancex/distance*magnet/distance;
			powery=this.y-distancey/distance*magnet/distance;
 
			forcex = (forcex + (homeX - x0) / 2) / 1.660000;
			forcey = (forcey + (homeY - y0) / 2) / 1.660000;
 
			this.x=powerx+forcex;
			this.y=powery+forcey;
 
 
		}
	}
}
Но, осталась 2я проблема. Объекты не возвращаются на свои места. Т.е они не образуют прямую линию какой она была в начале, а смещаются на пару пикселей.
Это очень странно, т.к нигде в коде(вроде как) homeX и homeY не изменяются.

Приведу оригинальный эффект, и то что получилось у меня, для наглядности.
Вложения
Тип файла: swf нужный эффект.swf (38.2 Кб, 19 просмотров)
Тип файла: swf то что получилось у меня.swf (1.5 Кб, 33 просмотров)