よたか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;
}
}
困った…。