2009年10月5日月曜日

Tween が上手く動かなかった

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

  1. package   
  2. {  
  3.     public class TweenTest  
  4.     {  
  5.           
  6.         private var tweenHolder:Array = new Array();  
  7.           
  8.         public function TweenTest()   
  9.         {  
  10.             addEventListener(Event.ADDED_TO_STAGE,   
  11.                 function(e:Event):void {  
  12.                     removeEventListener(Event.ADDED_TO_STAGE, arguments.callee);  
  13.                     tweenHolder.push(new Tween(this"alpha", None.easeIn, 0, 1, 10));  
  14.                 }  
  15.             );  
  16.         }  
  17.           
  18.     }  
  19.   
  20. }  

外に出したら動いた。

  1. package   
  2. {  
  3.     public class TweenTest  
  4.     {  
  5.           
  6.         private var tweenHolder:Array = new Array();  
  7.           
  8.         public function TweenTest()   
  9.         {  
  10.             addEventListener(Event.ADDED_TO_STAGE,   
  11.                 function(e:Event):void {  
  12.                     removeEventListener(Event.ADDED_TO_STAGE, arguments.callee);  
  13.                     runTween();  
  14.                 }  
  15.             );  
  16.         }  
  17.           
  18.         private function runTween():void {  
  19.             tweenHolder.push(new Tween(this"alpha", None.easeIn, 0, 1, 10));  
  20.         }  
  21.           
  22.     }  
  23.   
  24. }  

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

0 件のコメント:

コメントを投稿