На данный момент, это будет работать:
//in decleration tags
<fx:Model id="myModel" source="myXML.xml"/>
//in the main code
<mx:VideoDisplay id="videoDisplay" source="{myModel.mainFile as String}" />
Однако, если добавить больше тегов в вашем XML, он не будет работать больше. Экземпляр модели - это экземпляр объекта ObjectProxy. Если есть один тег, инфраструктура Flex создаст ObjectProxy с свойством myFile, которое является строкой. Если существует более одного тега, свойство myFile будет массивом.
Итак, если вы действительно хотите использовать ArrayList экземпляр, не будет иметь никакого другого выбора, кроме как делать что-то подобное:
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
applicationComplete="application1_applicationCompleteHandler(event)"
>
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function application1_applicationCompleteHandler(event:FlexEvent):void
{
if (myModel.myFile is Array)
myArrList = new ArrayList(myModel.myFile)
else
myArrList = new ArrayList([myModel.myFile]);
}
]]>
</fx:Script>
<fx:Declarations>
<fx:Model id="myModel" source="myXML.xml" />
<s:ArrayList id="myArrList" />
</fx:Declarations>
</s:Application>
Кроме того, вы установили отладочную версию Flash Player?
1. Не нужно добавлять двойные кавычки вокруг пути видео в xml 2. Является ли корневым тегом вашего xml? –
trace myArrList.getItemAt (0), чтобы видеть. – alxx
@Florian: yes main is the root tag – m0j1