Да, есть такой вопрос, но нет активности и нет ответа.
Я хочу загрузить данные из внешнего XML-файла, используя HTTPService, и в ResultEvent того же HTTPService я хочу, чтобы он заполнил ArrayCollection данными из XML.
Я думаю, что ArrayCollection является идеалом для этого XML. но я открыт для предложений.
XML
<?xml version="1.0" encoding="utf-8"?>
<PhotoGalleryData>
<Photo>
<id>1</id>
<name>Summer Vacation</name>
<description>In vacation</description>
<source>vacation.JPG</source>
</Photo>
<Photo>
<id>2</id>
<name>Winter Vacation</name>
<description>coold</description>
<source>vacation2.JPG</source>
</Photo>
</PhotoGalleryData>
Я думал, что этой простой строки в getDataResultHandler()
будет достаточно для заполнения ArrayCollection.
<mx:HTTPService id="getData"
url="{XMLDataFileLocation}"
fault="getDataFaultHandler()"
result="getDataResultHandler()"/>
[Bindable]
private var PhotoData:ArrayCollection;
private function getDataResultHandler():void
{
PhotoData = new ArrayCollection(getData.lastResult.PhotoGalleryData.photo)
}
Но я думаю, что это не так, потому что просто чтобы убедиться, что я поместил список, связанный с ArrayCollection, чтобы увидеть, действительно ли он заполнен.
<mx:List dataProvider="{PhotoData}" labelField="name"/>
И в списке не было данных, поэтому он не работает так, как должно быть.
Спасибо за любую помощь.
EDIT
Примечание
Используется <mx:List/>
только для того, чтобы
уверен, что ArrayCollection
действительно населенный, он не будет использоваться в
Приложение.
Результаты по совету Божо.
С изменениями Божо Flex больше не сообщает об ошибке типа var, но как только я запускаю ее. Adobe Flash сообщает об этом.
Ошибка типа: ошибка № 1034: приведение типа
не удалось: не удалось преобразовать
mx.utils :: ObjectProxy @ 22cd311 для
mx.collections.ArrayCollection. в
ФОТОГалерея / getDataResultHandler () [C: \ Users \ Fabio
Antunes \ Документы \ Flex Builder 3 \ Фото
Галерея \ SRC \ ActionScripts \ PhotoGallery.as: 56]
в
ФОТОГалерея / __ getData_result () [C: \ Users \ Fabio
Antunes \ Документы \ Flex Builder 3 \ Фото
Галерея \ src \ PhotoGallery.mxml: 23] в
flash.events::EventDispatcher/dispatchEventFunction ()
в
flash.events::EventDispatcher/dispatchEvent ()
в
mx.rpc.http.mxml :: HTTPService / http://www.adobe.com/2006/flex/mx/internal::dispatchRpcEvent()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\http\mxml\HTTPService.as:290]
в
mx.rpc :: AbstractInvoker / http://www.adobe.com/2006/flex/mx/internal::resultHandler()[C:\autobuild\3.2.0\frameworks\projects\rpc\src\mx\rpc\AbstractInvoker.as:193]
в
mx.rpc :: Ответчик / результат (а) [C: \ автосборки \ 3.2.0 \ рамки \ проекты \ RPC \ SRC \ х \ \ RPC Responder.as: 43]
в
mx.rpc :: AsyncRequest / квитирования () [C: \ автосборки \ 3.2.0 \ рамки \ проекты \ RPC \ SRC \ тх \ RPC \ AsyncRequest.as: 74]
в
DirectHTTPMessageResponder / completeHandler () [C: \ автосборки \ 3.2.0 \ рамки \ проекты \ RPC \ SRC \ тх \ сообщениями \ каналы \ DirectHTTPChannel.as: 403]
в
flash.events::EventDispatcher/dispatchEventFunction()
Ну и строка 23, что Flash сообщает об ошибке своей:
PhotoData = ArrayCollection(event.result);
Строка 23:
result="getDataResultHandler(event)"