トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     コールバックに引数を渡したい
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
グッピー堀内
Åê¹ÆNo.11400
投稿日時: 2004-10-8 18:29
常連
居住地: 都内某駅前
投稿: 68
使用環境:
Win2000, Flash MX 2004
MacOSX, Flash MX 2004
コールバックに引数を渡したい
こんにちは、いつも参考にさせてもらってます。

最近、困るというほどではないのですが、コールバックに引数を渡せたらなぁと、思っています。
例えば、外部テキストを読み込んでそれを、配列に格納する場合。
下記のようにしたいのです。

_global.test:Array = new Array();
var loder:LoadVars = new LoadVars();
//ここら辺で、コールバック「LoadCallBack」の引数に数値を渡せたらなと思っています。
loder.onLoad = LoadCallBack;
loder.load("URL");

//コールバック
function LoadCallBack(success:Boolean, in_num:Number):Void{
if(success){
test[in_num] = loder.inputtext;
}
}

このような感じでやりたいのです。
他にも方法はあるのですが、できればこのような形でやってみたいなぁと思っています。

なお、作成環境は、MacOSXで、Flash MX 2004です。

もしこのようなことができるのであれば、何かヒントをいただけないでしょうか。
KURAGE
Åê¹ÆNo.11401
投稿日時: 2004-10-8 20:39
常連
居住地: 東京都
投稿: 199
使用環境:
Flash 4?8/Lite 1?2
2000/XP
OSX 10.3
qurage.net
AS2HTML
Re: コールバックに引数を渡したい
こんばんは

Function.call()
等を使えば可能ですが、
コールバックを引数付きで呼び出す為のコールバックが必要になります

今回の場合でしたら
loader自体にin_numを設定しておいて
コールバック内でそれを参照してはいかがでしょうか?

loder.onLoad   = LoadCallBack;
loder.in_num   = 1;//ここで設定
loder.load("URL");
 
// コールバック
function LoadCallBack(success:Boolean):Void{
	if(success){
		_global.test[this.in_num] = this.inputtext;
	}
}
youich
Åê¹ÆNo.11403
投稿日時: 2004-10-8 21:04
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: コールバックに引数を渡したい
引用:

kabutoGaniさんは書きました:
こんにちは、いつも参考にさせてもらってます。

最近、困るというほどではないのですが、コールバックに引数を渡せたらなぁと、思っています。
例えば、外部テキストを読み込んでそれを、配列に格納する場合。
下記のようにしたいのです。

_global.test:Array = new Array();
var loder:LoadVars = new LoadVars();
//ここら辺で、コールバック「LoadCallBack」の引数に数値を渡せたらなと思っています。
loder.onLoad = LoadCallBack;
loder.load("URL");

//コールバック
function LoadCallBack(success:Boolean, in_num:Number):Void{
if(success){
test[in_num] = loder.inputtext;
}
}

このような感じでやりたいのです。
他にも方法はあるのですが、できればこのような形でやってみたいなぁと思っています。

なお、作成環境は、MacOSXで、Flash MX 2004です。

もしこのようなことができるのであれば、何かヒントをいただけないでしょうか。

loader.onLoad内で対象のコールバックを呼んでやるように書けばよいように思いますけど、、

そういう趣旨のことでは無かったらすいません。
var loder:LoadVars = new LoadVars();
loder.onwer:Object = this;
loder.onLoad = function(success:Boolean){
    var in_num:Number = doSomething();
    this.owner.loadCallBack(success,in_num,this);
}
loder.load("URL");

//コールバック
function loadCallBack(success:Boolean, in_num:Number,aLoader:LoadVars):Void{
  if(success){
    test[in_num] = aLoader.inputtext;
  }
}


----------------
- yo

野中文雄
Åê¹ÆNo.11405
投稿日時: 2004-10-9 0:18
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: コールバックに引数を渡したい
Activationオブジェクトを利用する例です。
var loder:LoadVars = new LoadVars();
loder.onLoad = LoadCallBack(0);
loder.load("URL");
//コールバック
function LoadCallBack(in_num:Number):Function {
    return function (success:Boolean):Void {
        if (success) {
            test[in_num] = this.inputtext;
        }
    };
}

実質は、KURAGEさんの方法と差がありません。コールバック関数が明示され、複数のLoadVarsインスタンスで利用した場合にメモリを余分に使わない点から、私もKURAGEさんと同様の方法を採ると思います。

ただ、上記のテクニックが注目されたこともあるようですので、ご参考までにご紹介しました。
引用:
KURAGEさんは書きました:
今回の場合でしたら
loader自体にin_numを設定しておいて
コールバック内でそれを参照してはいかがでしょうか?
loder.onLoad   = LoadCallBack;
loder.in_num   = 1;//ここで設定
loder.load("URL");
 
// コールバック
function LoadCallBack(success:Boolean):Void{
	if(success){
		_global.test[this.in_num] = this.inputtext;
	}
}


----------------
 

グッピー堀内
Åê¹ÆNo.11547
投稿日時: 2004-10-15 21:26
常連
居住地: 都内某駅前
投稿: 68
使用環境:
Win2000, Flash MX 2004
MacOSX, Flash MX 2004
Re: コールバックに引数を渡したい
お返事遅くなりました。
皆さん、ご回答ありがとうございました。
コールバックに直接引数を突っ込むことはできないということがわかりました。
代替え案までだしていだたき本当にありがとうございました。
ありがたく参考にさせていただきます。

今後ともよろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops