1

我遇到了一个问题,即如何在 Flash 中组织来自 PHP 脚本的变量。理想情况下,我希望它们采用数组类型格式,这样我就可以遍历它们。下面是一些要使用的代码。

    function completeHandler(evt:Event){ // after loading the php
    var symbolsArray:Array = new Array()                      
    symbolsArray.push(evt.target.data.symbol_1);// php variable named: symbol_1, symbol_2
    trace(evt.target.data); 
    }

以上一切正常,PHP 变量列为 symbol_1、symbol_2 等

我想要一个循环,而不是将每个变量可分离地推入数组中,如下所示:

    function completeHandler(evt:Event){ 
    var symbolsArray:Array = new Array() 
    var counter =1                     
    symbolsArray.push(evt.target.data.symbol_+counter); this is the issue
    trace(symbolsArray[0]); //returns NaN 
    }

下面是 php return vars to flash 给出一个想法:

      $returnVars['symbol_1'] = $virtualReel1[0];
      $returnVars['symbol_2'] = $virtualReel1[1];
      $returnVars['symbol_3'] = $virtualReel1[2];
      $returnVars['symbol_4'] = $virtualReel2[0];
      $returnVars['symbol_5'] = $virtualReel2[1];
      //etc
      $returnString = http_build_query($returnVars);
      echo $returnString;
4

2 回答 2

2
 symbolsArray.push(evt.target.data["symbol_"+counter]);

如果你需要动态查询一个对象的属性,你可以通过一个可以动态形成的字符串键将其寻址为数组或字典。适用于任何东西。

于 2013-03-27T05:16:35.620 回答
1

返回的数据可以被视为一个对象(包含对象),因此您可以像这样循环遍历它:

function completeHandler(evt:Event)
{
    var symbolsArray:Array = new Array();
    for each (var obj:Object in evt.target.data)
    {
        symbolsArray.push(obj);
    }
}

如果您知道所有项目都是 oif 相同类型,则可以强制转换对象。例如:如果所有数字:

symbolsArray.push(Number(obj));

或字符串:

symbolsArray.push(String(obj));
于 2013-03-27T05:18:40.220 回答