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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
\* * * * * * * * * */
	public class Main extends Sprite 
	{
		private var _mc			:Sprite = new Sprite();
		private var _center		:Sprite = new Sprite();
		private var _floor		:Sprite = new Sprite();
		private var _centerX	:Number;
		private var _centerY	:Number;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.showDefaultContextMenu = false;
			// entry point
			_floor.graphics.beginFill(0xEEEEEE);
			_floor.graphics.drawRect(0, 0, 400, 400);
			this.addChild(_floor);
			_floor.x = _floor.y = 100;
 
			_center.graphics.beginFill(0x00FF00);
			_center.graphics.drawCircle(0, 0, 2);
			_center.x = _center.y = 200;
			_floor.addChild(_center);
 
			_mc.graphics.beginFill(0x000000);
			_mc.graphics.drawCircle(0, 0, 5);
			_mc.x = _mc.y = 200;
			_floor.addChild(_mc);
 
			_floor.addEventListener(MouseEvent.ROLL_OVER, onRollOver);
			_floor.addEventListener(MouseEvent.ROLL_OUT, onRollOut);
		}
 
		private function onRollOut(event:MouseEvent):void 
		{
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
		}
 
		private function onRollOver(event:MouseEvent):void 
		{
			_centerX = _floor.mouseX - (_floor.mouseX - _mc.x) / 2;
			_centerY = _floor.mouseY - (_floor.mouseY - _mc.y) / 2;
			_center.x = _centerX;
			_center.y = _centerY;
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
		}
 
		private function onMove(event:MouseEvent):void 
		{
			_mc.x = Math.max(0, Math.min(_centerX - (_floor.mouseX - _centerX), 400));
			_mc.y = Math.max(0, Math.min(_centerY - (_floor.mouseY - _centerY), 400));
			event.updateAfterEvent();
		}
 
	}
 
}
Вложения
Тип файла: zip InvertedMouse.zip (1.7 Кб, 45 просмотров)
__________________
Reality.getBounds(this);