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

Регистрация: Jul 2004
Адрес: от Москвы до самых до окраин
Сообщений: 172
Вот вариант, пофигу где мышь отпущена
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	/**
	 * volume control
	 * @author dedsky
	 */
	public class  VolumeControl1 extends Sprite
	{
		private var turning:Boolean;
		private var an1:Number;
		private var an2:Number;
 
		public function VolumeControl1()
		{
			turning = false;
			cHandle.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownListener);
			stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpListener);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, startTurning);
		}
 
		//мышь нажата над cHandle
		public function onMouseDownListener(event:MouseEvent):void
		{
			turning = true;
			an1 = Math.atan2(cHandle.mouseY, cHandle.mouseX);
		}
 
		//движение мыши
		public function startTurning(event:MouseEvent):void
		{
			if (turning) {
				an2 = Math.atan2(cHandle.mouseY, cHandle.mouseX);
				cHandle.rotation += (an2 - an1) * 180 / Math.PI;
 
				//независимость от скорости воспроизведения
				event.updateAfterEvent();
			}
		}
 
		//кнопка мыши отпущена
		public function onMouseUpListener(event:MouseEvent):void
		{
			turning = false;
		}
	}
}