Пока это будет работать:
//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?