Показать сообщение отдельно
Старый 25.02.2014, 14:12
Akopalipsis вне форума Посмотреть профиль Найти все сообщения от Akopalipsis
  № 4  
Ответить с цитированием
Akopalipsis
Banned

Регистрация: Mar 2013
Сообщений: 1,864
В примере я заменил волка на квадраты.
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
 
	public class AnimationTest extends Sprite 
	{
		private var _isMotionState:Boolean;
		private var _isDefaultState:Boolean;
		private var _wolfs:Array;
		private const WOLF_DEFAULT_STATE:int = 0;
		private const WOLF_MOTION_STATE:int = 1;
		public function AnimationTest() 
		{
			_wolfs = [];
 
			var wolfDefaultState:Sprite = new Sprite();
			wolfDefaultState.graphics.beginFill(0xA83824);
			wolfDefaultState.graphics.drawRect(0, 0, 30, 30);
			wolfDefaultState.graphics.endFill();
			wolfDefaultState.x = 200;
			wolfDefaultState.y = 200;
			this.addChild(wolfDefaultState);
 
			var wolfMotionState:Sprite = new Sprite();
			wolfMotionState.graphics.beginFill(0x4FAA22);
			wolfMotionState.graphics.drawRect(0, 0, 30, 30);
			wolfMotionState.graphics.endFill();
			wolfMotionState.x = 200;
			wolfMotionState.y = 200;
			wolfMotionState.visible = false;
			this.addChild(wolfMotionState);
 
			_wolfs.push(wolfDefaultState, wolfMotionState);
 
			stage.addEventListener(KeyboardEvent.KEY_DOWN, stage_keyDownHandler);
			stage.addEventListener(KeyboardEvent.KEY_UP, stage_keyUpHandler);
		}
 
		private function stage_keyUpHandler(event:KeyboardEvent):void 
		{
			_isDefaultState = true;
			if (_isMotionState)_isMotionState = false;
			_wolfs[WOLF_DEFAULT_STATE].visible = true;
			_wolfs[WOLF_MOTION_STATE].visible = false;
		}
 
		private function stage_keyDownHandler(event:KeyboardEvent):void 
		{
			if (_isDefaultState)
			{
				_isDefaultState = false;
				_wolfs[WOLF_DEFAULT_STATE].visible = false;
			}
			_isMotionState = true;
			_wolfs[WOLF_MOTION_STATE].visible = true;
		}
 
	}
 
}
И у меня вопрос по теме - как лучше делать visible или addChild?