Wolsh невозможно повесить событие на Body
Добавлено через 6 минут
в общем сделал так, но мне не нравится

Код AS3:
private function defoltCollision(cb:PreCallback):PreFlag
{
if (cb.int2.castBody.userData.killUnits == false)
if ((cb.int1.castBody.velocity.y > 0) && (Math.abs(cb.int1.castBody.position.y - cb.int2.castBody.position.y) > 30))
{
stage.dispatchEvent(new UserEvent(UserEvent.COLLISION_GROUND_UNIT, true, false));
cb.int1.castBody.velocity.y *= -1;
cb.int2.castBody.userData.killUnits = true;
}
return PreFlag.IGNORE_ONCE;
}
в классе Unit

Код AS3:
this.addChild(new KillGroundUnit(sprite, body));

Код AS3:
ackage classesGame.killUnits
{
import classesGame.parentsCommon.ParentCommon;
import classesGame.userEvent.UserEvent;
import flash.display.MovieClip;
import flash.events.Event;
import nape.phys.Body;
public class KillGroundUnit extends ParentCommon
{
private var _sprite:MovieClip;
private var _body:Body;
public function KillGroundUnit(sprite:MovieClip, body:Body)
{
_sprite = sprite;
_body = body;
}
override public function init(e:Event):void
{
super.init(e);
this.addEventListener(Event.ENTER_FRAME, updateClip);
}
private function updateClip(e:Event):void
{
if (_sprite.currentFrame == 11)
if (_body.userData.killUnits == false)
_sprite.gotoAndPlay(1);
else _sprite.gotoAndStop(11);
}
override public function removeInit(e:Event):void
{
super.removeInit(e);
this.removeEventListener(Event.ENTER_FRAME, updateClip);
}
}
}