Делаю игру, хочу, чтобы ГГ умел приседать. Приседать его научил, но появилась такая проблема.

Если герой столкнётся с выделенной областью не в положении сидя, то он сам сядет. Если он продолжит двигаться в этой области, то всё будет хорошо, но если он остановится, то встанет.

Код AS1/AS2:
onClipEvent (enterFrame) {
_visible = false;
if (this.hitTest(_parent.hero_mc.hit) && _parent.hero_mc.crouch == false)
{
_parent.hero_mc.crouch = true;
}
}
Код героя:

Код AS1/AS2:
onClipEvent (load) {
var crouchspeed = 3;
var speed = 6;
var crouch = false;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT) && crouch == false)
{
_xscale = -100;
gotoAndStop(2);
_x -= speed;
}
if (Key.isDown(Key.RIGHT) && crouch == false)
{
_xscale = 100;
gotoAndStop(2);
_x += speed;
}
if (!Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT))
{
gotoAndStop(1);
}
if (Key.isDown(Key.LEFT) && Key.isDown(Key.RIGHT))
{
gotoAndStop(1);
}
if (crouch == true && Key.isDown(Key.LEFT))
{
crouch = true;
gotoAndStop(4);
_xscale = -100;
_x -= crouchspeed;
}
if (crouch == true && Key.isDown(Key.RIGHT))
{
crouch = true;
gotoAndStop(4);
_xscale = 100;
_x += crouchspeed;
}
if (!Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN))
{
gotoAndStop(3);
}
if (!Key.isDown(Key.DOWN))
{
crouch = false;
}
if (Key.isDown(Key.DOWN))
{
crouch = true;
}
if (crouch == true && !Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
gotoAndStop(3)
}
}
Прошу прощения за то, что не закоментировал. Итак вопрос - как заставить его сидеть пока он находится в этой области и не двигается?