我遇到了如何在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);
}
以上是allworking,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返回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;
答案 0 :(得分:2)
symbolsArray.push(evt.target.data["symbol_"+counter]);
如果需要动态查询对象的属性,可以通过字符串键将其作为数组或字典来解决,该字符串可以动态形成。适用于任何事情。
答案 1 :(得分:1)
返回的数据可以被视为一个Object(包含Objects),因此您可以像这样循环:
function completeHandler(evt:Event)
{
var symbolsArray:Array = new Array();
for each (var obj:Object in evt.target.data)
{
symbolsArray.push(obj);
}
}
如果您知道所有项目都是相同类型,则可以投射该对象。例如:如果所有数字:
symbolsArray.push(Number(obj));
Or Strings:
symbolsArray.push(String(obj));