PHP转AS3转换(数组相关)

时间:2011-10-13 16:24:37

标签: php flash actionscript-3

我正在尝试将其转换为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

1 个答案:

答案 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是一个充分的替代品。