отрисовываю и ставлю таймер:

Код AS3:
private static var _count:uint = 4;
private static var _view:DisplayObjectContainer;
private static var _bitmapData:BitmapData;
private static var _bitmap:Bitmap;
private static var _timer:Timer;
public static function doShake(view:DisplayObjectContainer):void
{
_view = view;
_bitmapData = new BitmapData(stageWidth, stageHeight, true, 0xFFFFFF);
_bitmapData.draw(_view);
_bitmap = new Bitmap(_bitmapData);
_view.parent.addChild(_bitmap);
_view.visible = false;
_timer = new Timer(50, _count);
_timer.addEventListener(TimerEvent.TIMER, timerHandler, false, 0, true);
_timer.start();
}
и двигаю по таймеру:

Код AS1/AS2:
private static function timerHandler(event:TimerEvent):void
{
if (_timer.currentCount == _count)
{
_view.parent.removeChild(_bitmap);
_view.visible = true;
return;
}
if (_timer.currentCount % 2 != 0)
_bitmap.y -= 20;
else
_bitmap.y += 20;
}
вот и всё.