、これは動作します:あなたがXMLに複数のタグを追加する場合
//in decleration tags
<fx:Model id="myModel" source="myXML.xml"/>
//in the main code
<mx:VideoDisplay id="videoDisplay" source="{myModel.mainFile as String}" />
しかし、それはもう動作しません。 モデルインスタンスは、実際にはObjectProxyインスタンスです。 タグが1つの場合、Flexフレームワークは、文字列であるmyFileプロパティを持つObjectProxyを作成します。複数のタグがある場合、myFileプロパティは配列になります。また
<?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のデバッグバージョンをインストールしている:あなたは本当にArrayListのインスタンスを使用する場合は
だから、あなたは次のように何かを行うよりも、他の選択肢を持っていないのだろうか?
1. xmlの動画のパスを二重引用符で囲む必要はありません。 2.はxmlのルートタグですか? –
トレースするmyArrList.getItemAt(0)を参照してください。 – alxx
@Florian:はいメインはルートタグです – m0j1