В примере я заменил волка на квадраты.

Код 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?