2014-06-12 2 views
0

as3과 함께 작업 중이며 함수 값을 전역 변수로 전달하는 방법을 모르겠습니다. 이 코드로 뭘하는지AS3의 클래스에서 함수에서 변수 값 전달

package { 

public class loadInfo { 
    import flash.events.*; 
    import flash.net.*; 

    private var teamA:String; 

    public var urlLoader:URLLoader = new URLLoader(); 

    public function loadInfo() { 
     urlLoader.addEventListener(Event.COMPLETE, handleComplete); 
     urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; 
     urlLoader.load(new URLRequest("data.txt")); 
    } 

    public function handleComplete(event:Event):void { 
     this.teamA = urlLoader.data.teamA; 
    } 
    public function getTeamA():String{ 
     return teamA; 
    } 
    } 

} 

.txt 파일에 여러 변수를로드하는 것입니다 : I (ㄱ이 .as 파일)이 코드가 있습니다.

과 .FLA 파일

나는이 :

import loadInfo; 

var dat:loadInfo = new loadInfo(); 
trace(dat.getTeamA()); 

하지만 결과는 "널 (null)"입니다. 그래서 나는 무엇을해야할지 전혀 모른다. 도움을 주시면 감사하겠습니다. 감사.

답변

1

로더가 완료 될 때까지 기다리지 않는 것이 문제입니다. 해당 txt 파일을로드하는 데 시간이 걸리며 getTeamA을 즉시 호출하면 로더가 완료되지 않습니다.

var dat:loadInfo = new loadInfo(); 
dat.addEventListener(Event.COMPLETE, onDataLoaded); 

function onDataLoaded(e:Event):void { 
    trace (dat.getTeamA()); 
} 

그리고 loaderInfo 내 :

public function handleComplete(event:Event):void { 
    this.teamA = urlLoader.data.teamA; 
    dispatchEvent(new Event(Event.COMPLETE)); 
} 

이 제대로 작동해야 당신이 뭔가를 할 것이다. loaderInfo은 EventDispatcher (class loaderInfo extends EventDispatcher {)를 확장해야합니다.

+0

감사합니다. 너는 그 사람이야. – MHG

관련 문제