自分自身のイベントと自分自身を削除する方法

ちょいと小ネタとしてFlexで自分自身のイベントと自分自身を削除する方法でっす。
あとはよろしく的な感じで書けるので管理が楽ちんです。
クリックするとちょいとアニメーションされてステージから削除されます。
http://moeten.info/flex/20080513_removeEvent/bin-release/main.html

ポイントは無名関数の場合は削除関数名を「arguments.callee」にします。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" viewSourceURL="srcview/index.html" backgroundGradientAlphas="[1.0, 1.0]" backgroundGradientColors="[#FFFFFF, #FFA2E8]">
<mx:Script>
<![CDATA[
import mx.controls.Image;
[Embed(source='heart.gif')]
private var heart:Class
//初期化関数
private function init():void{
    //マウスクリックイベント作成
    this.addEventListener( MouseEvent.CLICK , onClick );
}
//マウスクリックでオブジェ作成
private function onClick(e:Event):void{
    //オブジェの作成
    var img:Image = new Image();
    img.source = new heart() as Bitmap
    img.x = this.mouseX;
    img.y = this.mouseY;
    this.addChild(img);
    //アニメーションのイベントを作成
    img.addEventListener(Event.ENTER_FRAME , myAnime );
}
//個々のアニメーションイベント
private function myAnime( e:Event ):void{
    var im:Image = e.target as Image;
    im.scaleX += 0.1;
    im.scaleY += 0.1;
    im.alpha  -= 0.01;
    im.rotation += 10;
    //もし透明度が0になったらイベントとステージから削除
    if( im.alpha <= 0 ){
        im.removeEventListener( Event.ENTER_FRAME , arguments.callee );
        this.removeChild( im );
    }
}
]]>
</mx:Script>
</mx:Application>