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 変数を取得する方法をまだ考えています。

これを試してみるとどうなりますか:

 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);
 }

ループ内の正方形に URL を追加する必要があります

square.theUrl = tGame_url;

イベントリスナー関数では、次の方法でアクセスできるはずです

event.currentTarget.theUrl;
于 2010-06-30T22:39:50.250 に答える