2009年10月5日月曜日

Tween が上手く動かなかった

すっきり書きたいなと下みたいに書いたら、動かなかった。

package 
{
    public class TweenTest
    {
        
        private var tweenHolder:Array = new Array();
        
        public function TweenTest() 
        {
            addEventListener(Event.ADDED_TO_STAGE, 
                function(e:Event):void {
                    removeEventListener(Event.ADDED_TO_STAGE, arguments.callee);
                    tweenHolder.push(new Tween(this, "alpha", None.easeIn, 0, 1, 10));
                }
            );
        }
        
    }

}

外に出したら動いた。

package 
{
    public class TweenTest
    {
        
        private var tweenHolder:Array = new Array();
        
        public function TweenTest() 
        {
            addEventListener(Event.ADDED_TO_STAGE, 
                function(e:Event):void {
                    removeEventListener(Event.ADDED_TO_STAGE, arguments.callee);
                    runTween();
                }
            );
        }
        
        private function runTween():void {
            tweenHolder.push(new Tween(this, "alpha", None.easeIn, 0, 1, 10));
        }
        
    }

}

原因は後で調べる。
無名関数のスコープが考慮できてなかった。便利だけど気をつけないと。
我ながら情けないミスだけど、戒め戒め。

0 件のコメント:

コメントを投稿