For loop AS3 URLRequest在for循环中出现问题
我从一个xml文件中读取了一些数据,除了URL之外,其他一切都很好。我不知道“navigateURL”函数或eventListener有什么问题。。。单击哪个方块,它将打开xml文件中的最后一个urlFor loop AS3 URLRequest在for循环中出现问题,for-loop,actionscript-3,urlrequest,For Loop,Actionscript 3,Urlrequest,我从一个xml文件中读取了一些数据,除了URL之外,其他一切都很好。我不知道“navigateURL”函数或eventListener有什么问题。。。单击哪个方块,它将打开xml文件中的最后一个url for(var i:Number = 0; i <= gamesInput.game.length() -1; i++) { var square:square_mc = new square_mc(); //xml values var tGame_name:String
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);
}
for(var i:Number=0;i看起来您没有正确附加事件侦听器。请将其附加到创建新square_mc时创建的变量,而不是this.addEventListener…..以便:
square.addEventListener(MouseEvent.CLICK,navigateURL);您应该在正方形上添加addEventListener
嗯..仍然在考虑eventhandler函数如何获得正确的tgame\u url变量
如果您尝试以下方法:
square.addEventListener(MouseEvent.CLICK, function navigateURL(event:MouseEvent):void
{
var url:URLRequest = new URLRequest(tGame_url);
navigateToURL(url, "_blank");
trace(tGame_url);
});
在navigateURL()中,您使用tGame\u url,但我认为您更喜欢使用tgurl\u txt.text之类的内容,这对于每个方块都是不同的。尝试跟踪以下内容:
function navigateURL(event:MouseEvent):void
{
var url:URLRequest = new URLRequest(tGame_url);
navigateToURL(url, "_blank");
//trace(tGame_url);
trace(event.currentTarget.tgurl_txt.text);
}
您应该将url添加到循环中的方块中
square.theUrl = tGame_url;
在事件侦听器函数中,您应该能够使用
event.currentTarget.theUrl;
eventListener它附加到方块上,可以工作,但是所有方块都有相同的url…嗨,非常感谢你的回答,我试过了,但仍然没有成功嗨,我试过了,就像你说的,但我得到了相同的东西…它总是从xml中得到最后一个url:(.谢谢你的支持!只是想知道你是否已经解决了问题?因为我有同样的问题,我无法从外部访问任何添加了for循环的子项。是否存在范围问题?