Показать сообщение отдельно
Старый 13.02.2011, 03:15
semenyakinVS вне форума Посмотреть профиль Отправить личное сообщение для semenyakinVS Найти все сообщения от semenyakinVS
  № 13  
Ответить с цитированием
semenyakinVS

Регистрация: Mar 2010
Сообщений: 137
М-да...

Код AS3:
		public function set length(value:Number):void {
			var _angle:Number = angle;
			_x = Math.cos(_angle) * value;
			_y = Math.sin(_angle) * value;
			if(Math.abs(_x) < 0.00000001) _x = 0;
			if(Math.abs(_y) < 0.00000001) _y = 0;
		}
		/**
		 * Returns the length of the vector.
		 **/
		public function get length():Number {
			return Math.sqrt(lengthSquared);
		}
Обе функции - очень плохие.

Длину надо кэшировать. Для того, чтобы можно было:

Код AS3:
	public function set length(value:Number):void {
		x *= value/_cashLength;
		y *= value/_cashLength;
 
		// Вот это всё-таки надо… Против глюков.
		if(Math.abs(_x) < 0.00000001) _x = 0;
		if(Math.abs(_y) < 0.00000001) _y = 0;
	}
 
	public function get length():Number {
		return _cashLength;
	}


Последний раз редактировалось semenyakinVS; 13.02.2011 в 03:16. Причина: Глючный тег [AS3]