2011-01-26 1 views
0

forループから複数の変数を取得しようとしています。 URLは次のようになります。コードのAS3のi ++はvarで動作しませんか?

total=2&id1=2&content1=I+am+the+first+blog&id2=4&content2=I+am+the+second+blog

for (var i:Number=i; i<=total;i++){ 
trace(i); 
var id = this.evt.target.data+i; 
     var content = evt.target.data.content; 
trace ('id from DB: ' + id); 
     trace ('content from DB: ' + content); 
} 

この行は動作しません。私はあらゆる方法を試しました:

var id = this.evt.target.data+i; 
var id = ["this.evt.target.data"+i]; //traces var id as text only, not the result id1 
var id = this.evt.target.data.i; 
var id = this.evt.target.data[i]; 
var id = this.evt.target.data+i; 

これは不可能ですか?または私は何かを逃していますか?

+0

前にこれを見ていなかったので

var content = evt.target.data['content' + i]; 

は今、私は自分自身を平手打ちするつもり? URLからFlashVarsを読み込もうとしていますか、またはURLLoaderで開いたデータを読み込もうとしていますか? – poke

答えて

1

非常にあなたがやろうとしているものと推測して、私はこれがあなたがしようとするものであると信じて:

// ... 
private var loader:URLLoader; 

public function foo (someUrl:String):void 
{ 
    loader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE, onComplete); 
    loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
    loader.load(new URLRequest(someUrl)); 
} 

private function onComplete (event:Event) 
{ 
    var total:int = int(event.target.data.total); 

    for (var i:int = 1; i <= total; i++) 
    { 
     trace(event.target.data[ 'id' + i ]); 
     trace(event.target.data[ 'content' + i ]); 
    } 
} 
+0

私はあなたの例を試して、いくつかの値を変更しましたが、それは私に同じエラーを与えます。 – Proto

0

これは私のコードです:

var request:URLRequest = new URLRequest("http://localhost:8888/lifestyle/get.php?type=blog"); 
request.method = URLRequestMethod.GET; 

var loader:URLLoader = new URLLoader(); 
loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
loader.addEventListener(Event.COMPLETE, completeHandler); 
loader.load(request); 

function completeHandler(evt:Event) { 

    //var blancData = evt.target.data.blancData; 
    var total = evt.target.data.total; 
    var id = evt.target.data.id; 
    var content = evt.target.data.content; 

    for (var i:Number=1; i<=total;i++){ 
    var id = evt.target.data.id; 
    var content = evt.target.data.content; 
    trace ('id uit DB: ' + id); 
    trace ('content uit DB: ' + content); 
    } 

// trace ('totaal rijen in DB: ' + total); 
    //trace ('id uit DB: ' + id); 
    //trace ('content uit DB: ' + content); 
} 
+0

var id = evt.target.data.idをvar id = evt.target.data.id1に変更した場合。それは動作しますが、私がvarに変更すると、それはありません.. – Proto

0

それは動作します!

@ポークあなたの答えに感謝します!あなたは私に正しい方向を指摘しました!私は `evt`、` evt.target`と `evt.target.data`を参照するにはどのようなものです:)

関連する問題