实际上,您可以在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端使用这个文件包括ArrayCollection.php在你的PHP项目和语法来调用它看起来是这样的:
$myArrayCollection = new ArrayCollection();
,如果你想访问组成中的ArrayCollection数组,你可以做到这一点
$someArray = $myArrayCollection->source;
在Flex侧,您可以通过Zend AMF将Array Collections直接传递到服务器。在我的其中一个项目中,我有许多具有ArrayCollections的值对象,并且它们在PHP方面工作得很好。所以它可以做到。
如果你绝对不能使用PHP中的ArrayCollection工作,你可以直接访问数组作为Actionscript中ArrayCollection的“source”属性。代码在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中对象的数组。
希望这会有所帮助。如果您有进一步的问题和/或有代码示例,请告诉我。
我花了一点时间才弄清楚这一点。