2009-10-14 5 views
0

제 3의 함수에서 XML 데이터를 얻을 수 있습니까?세 번째 함수에서 XML 데이터 가져 오기?

trace(myXML.toXMLString()); 

을 또는 당신은 실제로 같은 데이터로 더 많은 작업을 수행 할 코드로 해석 않은 : 당신은 단지 인 myXML의 내용을 추적하려면

package { 
import flash.display.*; 
import flash.events.*; 
import flash.net.*; 

public class main extends MovieClip { 
    private var myXML:XML; 
    private var myXMLlist:XMLList; 
    private var myLoader:URLLoader = new URLLoader(); 

    public function main():void { 
     loadData(); 
     3rdfunction(); 
    } 

    private function loadData():void { 
     myLoader.load(new URLRequest("data.xml")); 
     myLoader.addEventListener(Event.COMPLETE, processXML); 
    } 
    private function processXML(e:Event):void { 
     myXML=new XML(e.target.data); 
     trace(myXML.length()) 
    } 


    private function 3rdfunction():void { 

     trace(myXML); 

}

답변

2

loadData() 함수가 XML 파일을로드 한 다음이 데이터를 myXML에 넣으려면 시간이 걸립니다. 그러나 3rdfunction()은 loadData() 바로 다음에 실행됩니다. 즉, 추적하려고 할 때 myXML이로드 될 충분한 시간이 없음을 의미합니다.

가) (processXML에() 호출하면 3rdfunction를 이동할 수 있습니다,이 문제를 해결하려면

public class main extends MovieClip { 
    private var myXML:XML; 
    private var myXMLlist:XMLList; 
    private var myLoader:URLLoader = new URLLoader(); 

    public function main():void { 
      loadData(); 
    } 

    private function loadData():void { 
      myLoader.load(new URLRequest("data.xml")); 
      myLoader.addEventListener(Event.COMPLETE, processXML); 
    } 
    private function processXML(e:Event):void { 
      myXML=new XML(e.target.data); 
      trace(myXML.length()) 
      3rdfunction(); 
    } 


    private function 3rdfunction():void { 

      trace(myXML); 

이 방법 3rdfunction() 만 인 myXML 객체로로드 된 인 data.xml 후 실행됩니다, myXML에는 분명히 무언가가 포함되어야합니다.

+0

아하 ..... 바보 같은 날 XD 고맙습니다! – Hwang

+0

당신은 환영합니다 :) – MichaelJW

0

시도?

+0

기술적으로 나는 그걸로 다른 것을 할 수 있기 전에 기술적으로 추적 할 수 있어야합니까? – Hwang

+0

아, 질문을 잘못 읽은 것 같습니다. Thirdfunction()이 아직 아무 것도 추적하지 않는 이유를 묻고 있습니까? – MichaelJW

+0

예. 문제를 극복하는 방법에 대한 생각? – Hwang

관련 문제