Показать сообщение отдельно
Старый 02.07.2013, 21:25
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 2  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Проблема в том, что в первом примере ты двигаешь своего персонажа, а во втором двигаешь сцену.

Код AS3:
var cub:Movement = new Movement;
 
addChild(cub);

Ты добавляешь на сцену свой класс?

Код AS3:
package 
{
 
	import flash.display.MovieClip;
	import flash.display.Stage;
 
	public class Movement extends MovieClip
	{
		var cub:MovieClip;
		var up:Boolean = false;
		var down:Boolean = false;
		var right:Boolean = false;
		var left:Boolean = false;
 
		var upS:Number = 1;
		var downS:Number = 1;
		var rightS:Number = 1;
		var leftS:Number = 1;
 
		public function Movement(c:MovieClip)
		{
			cub = c;
			this.addEventListener(KeyboardEvent.KEY_DOWN, onKD);
			this.addEventListener(KeyboardEvent.KEY_UP, onKU);
			cub.addEventListener(Event.ENTER_FRAME, onMoveHero);
		}
 
		public function onKD(e:KeyboardEvent):void
		{
			if (e.keyCode == 37)
			{
				left = true;
				trace("12312")
			}
			if (e.keyCode == 38)
			{
				up = true;
			}
			if (e.keyCode == 39)
			{
				right = true;
			}
			if (e.keyCode == 40)
			{
				down = true;
			}
		}
 
		public function onKU(e:KeyboardEvent):void
		{
			if (e.keyCode == 37)
			{
				left = false;
			}
			if (e.keyCode == 38)
			{
				up = false;
			}
			if (e.keyCode == 39)
			{
				right = false;
			}
			if (e.keyCode == 40)
			{
				down = false;
			}
		}
 
		public function onMoveHero(e:Event):void
		{
			if (left)
			{
				trace("left");
				cub.x -=  leftS;
				leftS++;
			}
			else
			{
				cub.x -=  leftS;
				leftS *=  .7;
			}
			if (up)
			{
				cub.y -=  upS;
				upS++;
			}
			else
			{
				cub.y -=  upS;
				upS *=  .7;
			}
			if (right)
			{
				cub.x +=  rightS;
				rightS++;
			}
			else
			{
				cub.x +=  rightS;
				rightS *=  .7;
			}
			if (down)
			{
				cub.y +=  downS;
				downS++;
			}
			else
			{
				cub.y +=  downS;
				downS *=  .7;
			}
		}
 
	}
 
}
 
/* В исходнике fla пишешь: var movement:Movement = new Movement(cub); //В качестве аргумента название твоего героя.
*/