0

我从 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   = 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);
 }

非常感谢!

4

4 回答 4

1

在 navigateURL() 中,您使用 tGame_url,但我认为您更愿意使用 tgurl_txt.text 之类的东西,这对于每个方块都会有所不同。

于 2010-06-11T23:50:40.807 回答
0

看起来您没有正确附加事件侦听器。而不是 this.addEventListener,将其附加到您在创建新 square_mc 时创建的变量.....所以:

square.addEventListener(MouseEvent.CLICK, navigateURL);

于 2010-06-11T23:25:13.137 回答
0

你应该在 Squares 上添加 addEventListener

嗯..仍在弄清楚 eventhandler 函数将如何获得正确的 tgame_url var。

如果你试试这个怎么办:

 square.addEventListener(MouseEvent.CLICK, function navigateURL(event:MouseEvent):void 
 {  
    var url:URLRequest = new URLRequest(tGame_url); 
     navigateToURL(url, "_blank"); 
    trace(tGame_url); 
  });
于 2010-06-11T23:26:20.823 回答
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;
于 2010-06-30T22:39:50.250 回答