我正在尝试将其转换为AS3
$display = array();
$map = array(array(0, 0, 1, 0, 1, 1, 2, 1 ,0) , array(0, 2, 1, 0, 1, 0) ...etc
foreach ($x as $keyX => $valX)
{
foreach ($y as $keyY => $valY)
{
if (isset($map[$valX][$valY]))
{
$display[$keyX][$keyY] = $map[$valX][$valY];
}
else
{
$display[$keyX][$keyY] = "20";
}
}
}
然后我将如何从php到as3
答案 0 :(得分:0)
我不知道在ActionScript中如何最终得到这样一个令人费解的对象集,但代码的字面翻译将是这样的:
var display:Object = {};
for (var keyX in objX) {
display[keyX] = {}; // initialize new "row"
for (var keyY in objY) {
if (map[objX[keyX]][objY[keyY]] != null) {
display[keyX][keyY] = (map[objX[keyX]][objY[keyY]]);
} else {
display[keyX][keyY] = "20";
}
}
}
/* LEGEND
keyX = $keyX; objX = $x
keyY = $keyY; objY = $y
display = $display; map = $map
*/
由于PHP和AS3具有与动态对象不同的行为,因此必须将每个“行”初始化为AS3中的新对象,否则将发生运行时错误。
故事的要点是:AS3没有PHP foreach (array_expression as $key => $value)
构造,但for...in
是一个充分的替代品。