2010-06-11 62 views
0

我從一個xml文件讀取一些數據,除了urls之外,一切都很好。我想不出有什麼問題了「navigateURL」功能或與事件監聽......上萬我點擊它打開了一個網址從XML文件AS3 URLRequest for for循環問題

for(var i:Number = 0; i <= gamesInput.game.length() -1; i++) 
{ 
    var square:square_mc = new square_mc(); 

    //xml values 
    var tGame_name:String = gamesInput.game.name.text()[i];//game name 
    var tGame_id:Number  = gamesInput.children()[i].attributes()[2].toXMLString();//game id 
    var tGame_thumbnail:String = thumbPath + gamesInput.game.thumbnail.text()[i];//thumb path 
    var tGame_url:String  = gamesInput.game.url.text()[i];//game url 

    addChild(square); 
    square.tgname_txt.text = tGame_name; 
    square.tgurl_txt.text = tGame_url; 

    //load & attach game thumb 
    var getThumb:URLRequest = new URLRequest(tGame_thumbnail); 
    var loadThumb:Loader = new Loader(); 
    loadThumb.load(getThumb); 
    square.addChild(loadThumb); 
    // 
    square.y = squareY; 
    square.x = squareX; 
    squareX += square.width + 10; 

    square.buttonMode = true; 
    square.addEventListener(MouseEvent.CLICK, navigateURL); 

} 

function navigateURL(event:MouseEvent):void 
{ 
    var url:URLRequest = new URLRequest(tGame_url); 
    navigateToURL(url, "_blank"); 
    trace(tGame_url); 
} 

非常感謝!

+0

想知道你是否已經找出問題所在?因爲我有同樣的問題,我無法訪問從外部添加for循環的任何孩子。有範圍問題的東西? – Benyaman 2014-04-25 05:19:32

回答

0

看起來你沒有正確附加事件監聽器。而不是this.addEventListener,將它附加到創建新square_mc時創建的變量.....所以:

square.addEventListener(MouseEvent.CLICK,navigateURL);

+0

我也是這樣試過的...我得到了同樣的結果:( – Adrian 2010-06-11 23:29:16

0

你應該在廣場

mmm..still盤算如何事件處理函數都不會得到正確的tgame_url VAR添加的addEventListener。

如果你試試這個:

square.addEventListener(MouseEvent.CLICK, function navigateURL(event:MouseEvent):void 
{ 
    var url:URLRequest = new URLRequest(tGame_url); 
    navigateToURL(url, "_blank"); 
    trace(tGame_url); 
    }); 
+0

eventListener它連接到正方形,它的工作原理,但所有的方塊都有相同的網址... – Adrian 2010-06-11 23:32:22

+0

嗨,非常感謝你的回答,我嘗試,但仍然沒有成功 – Adrian 2010-06-12 08:54:29

1

在navigateURL()使用tGame_url,但我認爲你寧願使用類似tgurl_txt.text這將是每平方不同。

+0

嗨,我試着像你說的,但我得到了同樣的東西......它總是從XML的最後一個網址:(。謝謝你的支持! – Adrian 2010-06-12 09:00:29

0

嘗試跟蹤此:

function navigateURL(event:MouseEvent):void 
{ 
    var url:URLRequest = new URLRequest(tGame_url); 
    navigateToURL(url, "_blank"); 
    //trace(tGame_url); 
    trace(event.currentTarget.tgurl_txt.text); 
} 

你應該在事件偵聽器函數循環

square.theUrl = tGame_url; 

的網址添加到您的廣場,你應該能夠

event.currentTarget.theUrl; 
進行訪問