よたかの日記を兼ねたブログです
あっちこっちケイイチ

よたかの日記を兼ねたブログです

  1. サーバーライフ
  2. ActionScript3.0(Flex SDK )で「getChildAt」が思う様に使えない

ActionScript3.0(Flex SDK )で「getChildAt」が思う様に使えない

よたか2010.03.11 21:02:52

ActionScript3.0(Flex SDK )で、
addChildAt で 「Bord」配置した 「TextField」に「入力されたテキスト」「キャッシュ」をさせる為に、
下記の様なファンクションを書き、
 
public function text_update(...args):void{
var B:DisplayObject = Bord.getChildAt(args[0]);
var target:DisplayObject = B.getChildAt(1);
temp["txt"] = target.text;
}
 
text_update(index_no);

この様に、インディックス番号を指定して呼び出そうとしているのですが、
コンパイル時にエラーが出てしまいます。
 
「未定義である可能性のあるメソッド getChildAt を、静的型 flash.display:DisplayObject の参照を使用して呼び出しました。」
var target:DisplayObject = B.getChildAt(1);
 
 
var B:DisplayObject = Bord.getChildAt(args[0]); こちらではエラーが出ていないのに、
var target:DisplayObject = B.getChildAt(1); こちらだけエラーが出てしまいます。
 
 
クロージャを使って下記の通り書くとコンパイル時のエラーは出ないのですが、今度はこれを呼び出す書式が解りません。
ファックション(2)
public function text_update(...args):Function{
return function(){
var B:DisplayObject = Bord.getChildAt(args[0]);
var target:DisplayObject = B.getChildAt(1);
temp["txt"] = target.text;
}
}
 
TextField.addEventListener(MouseEvent.ROLL_OUT,text_update(index_no));
この書き方だと動作するのですが、マウスイベントと絡ませたくないので、このままでは使えそうにありません。
 
ちなみにこうすると、コンパイル時に最初と同じエラーが出てしまいます。
ファックション(3)
public function text_update(...args):void{
function(){
var B:DisplayObject = Bord.getChildAt(args[0]);
var target:DisplayObject = B.getChildAt(1);
temp["txt"] = target.text;
}
}

困った…。