2011-01-15 7 views
0

xml 파일에서 flv 파일의 주소를 읽은 다음이를 videodisplay 태그의 "source"속성에 넣으려고합니다. 여기 내 코드입니다 :flex에서 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 인스턴스입니다. 하나의 태그가있는 경우 Flex 프레임 워크는 문자열 인 myFile 속성을 사용하여 ObjectProxy를 만듭니다. 둘 이상의 태그가있는 경우 myFile 속성은 Array입니다. 또한

<?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> 

, 당신은 플래시 플레이어의 디버그 버전을 설치 한 : 당신이 정말 ArrayList의 인스턴스를 사용하려면

그래서, 당신은 유사한하는 것보다 다른 선택의 여지가 있습니까?

+0

입니다. Florian에게 감사드립니다. 하지만이 일을하는 올바른 방법은 URLRequest 및 URLLoader 클래스를 사용하는 것입니다. 거기에 관한 어도비 사이트의 문서가있었습니다. 디버그 버전을 설치하지 않았기 때문에 가끔 문제가 발생합니다. – m0j1

+0

예 플래시 디버그 버전을 설치하고 Flash Builder에서 디버깅이 작동하는 방식을 확인하십시오. –