2011-01-26 2 views
0

Я пытаюсь получить несколько vars из цикла for. URL выглядит следующим образом:i ++ не работает для var в AS3?

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

Что такое 'evt',' 'evt.target' и evt.target.data' в виду? Вы пытаетесь прочитать FlashVars из URL-адреса или пытаетесь прочитать данные, которые вы открыли через 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 I, это не так. – Proto

0

Он работает !!

@Poke благодарим вас за ответ! Ты указал мне в правильном направлении!

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

Теперь я собираюсь хлопнуть себя, потому что я не видел этого раньше :)

Смежные вопросы