2009-05-02 5 views
1

ActionScript 3에서 외부 .txt 파일을로드 할 때까지 기다리는 방법은 무엇입니까? URLLoader를 사용하면 파일이 완료 될 때 이벤트를 전달하므로 파일이로드되었다고 보장 할 수 없습니다. 다른 클래스에서 로더 함수를 호출 중이므로 단순히 다음 동작을 이벤트 수신기에 적용 할 수 없습니다.ActionScript 3에서 외부 .txt 파일을로드 할 때까지 기다리는 방법은 무엇입니까?

답변

2

텍스트 파일 (또는 XML 파일)을로드하려면 URLLoader를 사용할 수 있습니다. 다른 클래스에서 호출하는 경우 Here's는 (거의 같은) kirupa

var loader:URLLoader; 
loader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE, xmlLoaded); 

var request:URLRequest = new URLRequest("file.xml"); 
loader.load(request); 
function xmlLoaded(event:Event):void { 
    var myXML:XML = new XML(loader.data); 
} 

에서 XML에 대한 예제는 EventListener를 참조로 호출을 전달하고 호출에서하면 Event.COMPLETE를 처리 할 수 ​​있습니다 클래스 :

loader.addEventListener(Event.COMPLETE, caller_class.xmlLoaded); 

이상적으로, 당신은 당신의 로더 클래스를 재사용하고 당신이 당신의 자신의 수업을 듣는은 URLLoader를 듣고 너무 대신하는 EventDispatcher를 확장 할 수 있습니다. An example for XML loaderAnother example for a more complex image loader (to avoid confussions don´t read it unless you already understand the text/XML one)

내가 도움이 :)


편집을 할 희망 : 관심이 누구 요하는 경우 나 단순하지만 링크의 here'sa 몇 가지 답을 유지하기 위해 그 코드를 게시하고 있지 않다

1)하는 EventDispatcher

public class YourClass extends EventDispatcher{ 
에 클래스를 확장 : 은 분명히 당신은 dispatchEvent에 팁의 방법 here'sa 커플을 찾고 16,

2)는 이벤트

3) 다른 클래스에서이 이벤트를 수신을 파견 dispatchEvent(new Event("event_name"));를 사용합니다. 예 : loader_class.addEventListener("event_name", callback);

* 4) 선택적으로 당신은 발송자 클래스 public const EVENT_NAME:String = "event_name",에 상수를 정의하여 일정한 같은 DispatcherClass.EVENT_NAME하여 문자열 ("EVENT_NAME")를 변경하고 다음과 같이 다른 클래스에서 호출 할 수 있습니다 : loader_class.addEventListener(DispatcherClass.EVENT_NAME, callback);

모든 것이 더 분명해지기를 바랍니다.

+0

감사합니다. 이 문제를 기능적으로 해결할 방법이 없다고 생각하십니까? "loader.addEventListener (Event.COMPLETE, caller_class.xmlLoaded);"를 수행하면 caller_class가 로더 클래스에 코딩되므로 2 클래스를 분리하여 보관할 수 없습니다. 이상적으로, 나는 caller_class로부터 로딩 함수를 호출하고, 그것이 끝날 때까지 기다렸다가, caller_class에서 계속 작업을하고 싶습니다. – Archagon

+0

발신자에게 유형이 지정되지 않은 매개 변수를 가져올 수 있으므로 호출 섹션을 참조 할 필요가 없지만 찾고있는 것이 내가로드 변환을 언급 한 다른 솔루션이라고 생각합니다. 나는 그것을 설명하기 위해 나의 지위를 편집 할 것이다. – ozke

관련 문제