实际上,您可以在 PHP 端创建一个 ArrayCollection 类型并直接通过 AMF 发送本机 ArrayCollection 对象。
这是我有的一些 php 代码。将其保存在一个名为
ArrayCollection.php
<?php
class ArrayCollection {
public function getASClassName()
{
return 'flex.messaging.io.ArrayCollection';
}
var $source = array();
function ArrayCollection()
{
$this->source = array();
}
}
要在 php 端使用它,请在 php 项目中包含 ArrayCollection.php,调用它的语法如下所示:
$myArrayCollection = new ArrayCollection();
如果你想访问组成 ArrayCollection 的数组,你可以这样做
$someArray = $myArrayCollection->source;
在 Flex 端,您可以通过 Zend AMF 将数组集合直接传递到服务器。在我的一个项目中,我有许多包含 ArrayCollections 的值对象,它们在 PHP 端工作得很好。所以可以做到。
如果您绝对不能让 ArrayCollection 在 PHP 中工作,您可以将数组作为 Actionscript 中 ArrayCollection 的“源”属性访问。代码在 actionscript 中看起来像这样:
import mx.collections.ArrayCollection;
public var myAC:ArrayCollection = new ArrayCollection();
public var myArray:Array = new Array();
// populate your ArrayCollection with data...
myArray = myAC.source;
myArray 现在将是 ArrayCollection myAC 中的对象数组。
希望这可以帮助。如果您还有其他问题和/或有代码示例,请告诉我。
我也花了一点时间才弄清楚这一点。