2011-01-15 12 views
0

XMLファイルからflvファイルのアドレスを読み込み、それをvideodisplayタグの "source"プロパティに入れようとしています。 ここに私のコードです:フレックスのxmlファイルから変数を読み取る

//in decleration tags 
<fx:Model id="myModel" source="myXML.xml"/> 
<s:ArrayList id="myArrList" source="{myModel.main}"/> 

//in the main code 
<mx:VideoDisplay id="videoDisplay" source="{myArrList.getItemAt(0)}" /> 

とxmlファイルは次のとおりです。

<main> 
<myFile>"g:\myflv.flv"</myFile> 
</main> 

誰が間違って何を知っていますか?今の TNX

+0

1. xmlの動画のパスを二重引用符で囲む必要はありません。 2.

はxmlのルートタグですか? –

+0

トレースするmyArrList.getItemAt(0)を参照してください。 – alxx

+0

@Florian:はいメインはルートタグです – m0j1

答えて

0

、これは動作します:あなたが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のインスタンスを使用する場合は

だから、あなたは次のように何かを行うよりも、他の選択肢を持っていないのだろうか?

+0

フロリアンに感謝、それは働いた。しかし、これを行う適切な方法は、URLRequestクラスとURLLoaderクラスを使用することです。それについてのAdobeのサイトの文書がありました。私はデバッグバージョンをインストールしていないし、時々私のために問題を引き起こす。 – m0j1

+0

はいフラッシュデバッグバージョンをインストールして、Flash Builderでどのようにデバッグが機能するかを確認することを強くお勧めします。 –

関連する問題