На самом деле вы можете создать тип ArrayCollection на стороне PHP и отправить собственные объекты ArrayCollection непосредственно над AMF.
Вот какой код 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. В одном из моих проектов у меня есть много объектов значений, в которых есть ArrayCollections, и они отлично работают на стороне PHP. Так что это можно сделать.
Если вы абсолютно не можете получить ArrayCollection, работающий на PHP, вы можете просто получить доступ к массиву как к «исходному» свойству ArrayCollection в ActionScript. Код выглядит примерно так в 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;
туАггау теперь будет массив объектов в ArrayCollection MyAC.
Надеюсь, это поможет. Если у вас есть дополнительные вопросы и/или у вас есть образец кода, дайте мне знать.
Мне тоже понадобилось немного, чтобы понять это.