2011-01-26 52 views
0

我想從循環中獲得多個變量。網址如下:i ++在AS3中不適用於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

什麼是`evt`,`evt.target`和`evt.target.data`指看到了嗎?你想從URL中讀取FlashVars,還是試圖讀取通過URLLoader打開的數據? – poke 2011-01-26 13:17:10

回答

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 2011-01-26 14:49:56

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 2011-01-26 14:52:17

0

它的作品!

@Poke謝謝你的回答!你已經指出我正確的方向!

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

現在我要拍自己,因爲我以前沒:)

相關問題