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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
была минутка, я накидал вам пример, как примерно, сделал бы я

Код AS3:
package {
	import flash.display.Graphics;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
	import flash.ui.Keyboard;
 
	public class Main extends Sprite {
 
		private var _speedsX:Object;
		private var _speedsY:Object;
		private var _car:Sprite;
		private var _speedOfCarX:int;
		private var _speedOfCarY:int;
 
		public function Main() {
			super();
 
			//{определяем скорость для соответствующих клавиш
			//для оси x
			this._speedsX = { };
			this._speedsX[Keyboard.RIGHT] = 3;
			this._speedsX[Keyboard.LEFT] = -3;
 
			//для оси у
			this._speedsY = { };
			this._speedsY[Keyboard.UP] = -3;
			this._speedsY[Keyboard.DOWN] = 4;
			//}
 
			//{рисуем тестовую машинку
			this._car = new Sprite();
			const g:Graphics = this._car.graphics
			g.beginFill(0x000000, 1.0);
			g.drawRect(0, 0, 50, 50);
			g.endFill();
			super.addChild(this._car);
			//}
 
			if (super.stage) {
				this.super_addedToStageHandler();
			} else {
				super.addEventListener(Event.ADDED_TO_STAGE, this.super_addedToStageHandler);
			}
		}
 
		private function super_addedToStageHandler(event:Event = null):void {
			super.removeEventListener(Event.ADDED_TO_STAGE, this.super_addedToStageHandler);
			super.addEventListener(Event.REMOVED_FROM_STAGE, this.super_removedFromStageHandler)
 
			super.stage.addEventListener(KeyboardEvent.KEY_DOWN, this.stage_keyDownHandler);
			super.stage.addEventListener(KeyboardEvent.KEY_UP, this.stage_keyUpHandler);
 
			//Запускаем общеигровой цикл
			super.addEventListener(Event.ENTER_FRAME, this.super_enterFrameHandler);
		}
 
		private function super_removedFromStageHandler(event:Event):void {
			this.removeEventListener(Event.REMOVED_FROM_STAGE, super_removedFromStageHandler);
 
			super.stage.removeEventListener(KeyboardEvent.KEY_DOWN, this.stage_keyDownHandler);
			super.stage.removeEventListener(KeyboardEvent.KEY_UP, this.stage_keyUpHandler);
 
			super.removeEventListener(Event.ENTER_FRAME, this.super_enterFrameHandler);
		}
 
		private function stage_keyDownHandler(event:KeyboardEvent):void {
			const keyCode:uint = event.keyCode;
 
			if (keyCode in this._speedsX) {
				this._speedOfCarX = this._speedsX[keyCode];
			} else {
				this._speedOfCarX = 0;
			}
 
			if (keyCode in this._speedsY) {
				this._speedOfCarY = this._speedsY[keyCode];
			} else {
				this._speedOfCarY = 0;
			}
		}
 
		private function stage_keyUpHandler(event:KeyboardEvent):void {
			this._speedOfCarX = 0;
			this._speedOfCarY = 0;
		}
 
		private function super_enterFrameHandler(event:Event):void {
			//обновляем позицию "авто"
			this._car.x += this._speedOfCarX;
			this._car.y += this._speedOfCarY;
		}
	}
}
но идея такого перемещения не самая удачная
__________________
местонахождение