2012-10-27 2 views
0

게임을 시작하기 전에 게임의 이미지를로드 중입니다. 따라서 main 함수는 이미지의 링크를 이미지로드 객체에 보냅니다.어떤 이벤트가 발생했는지 알아 보는 방법 eventListener

public function charge(str:String, img_x:int, img_y:int, layer:Sprite):void 
    { 
     trace("load"); 
     urlRequest = new URLRequest(str); 

     loaderArray[cptDemande] = new Loader(); 
     loaderArray[cptDemande].contentLoaderInfo.addEventListener(Event.COMPLETE, loading_done); 
     loaderArray[cptDemande].load(urlRequest); 

     posX[cptDemande] = img_x; 
     posY[cptDemande] = img_y; 

     layerArray[cptDemande] = layer; 

     cptDemande++;   
    } 

매개 변수의 img_x : INT, img_y : INT와 레이어 : 이것은 내 주에 image.load (링크)를 수행 할 때 내 이미지 로딩 객체에서 일어날 것입니다 스프라이트는 이후에 이미지를 표시와 관련이 있습니다. 로드가 모두 완료되면 스테이지에 이미지를 추가 할 수 있도록 배열을 사용하고 있습니다.

이벤트 리스너이 기능을 화재 :

public function loading_done(evt:Event):void 
    { 
     cptLoaded++; 
     evt.currentTarget.contentLoaderInfo.removeEventListener(Event.COMPLETE, loading_done); 
     if((cptDemande == cptLoaded) && (isDone == true)) 
     { 
      afficher(); 
     } 
    } 

내가 원하는 이벤트 리스너를 제거하는 좋은 로더를 대상으로 할 수있다. 내가 현재 작업 및 오류 코드 생성하지 않습니다 (evt.currentTarget)을 사용하고 있습니다 :

1069 속성 데이터가 flash.display.LoaderInfo의에없는 및 기본값을

답변

1

추적이 없다 evt.currentTargetcurrentTargetLoaderInfo 속성임을 보여줍니다. 내가에있어 동안 당신을 위해

public function loading_done(evt:Event):void 
{ 
    cptLoaded++; 

    // Current target IS the contentLoaderInfo 
    evt.currentTarget.removeEventListener(Event.COMPLETE, loading_done); 
    //evt.currentTarget.contentLoaderInfo.removeEventListener(Event.COMPLETE, loading_done); 
    if((cptDemande == cptLoaded) && (isDone == true)) 
    { 
     afficher(); 
    } 
} 

그냥 꼬마 팁, 당신은 Object에서 이미지의 속성이 모두 저장 한 후 눌러 자신의 삶을 더 쉽게 만들 수있는 다음과 같이 코드를 업데이트하십시오 각 속성에 대해 별도의 Array를 관리하는 대신 단일 Array에 저장합니다. 이 같은

뭔가 :

private var loadedImages:Array = new Array();  

    public function charge(str:String, img_x:int, img_y:int, layer:Sprite):void 
    { 
     var urlRequest:URLRequest = new URLRequest(str); 

     var loader:Loader = new Loader(); 
     loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loading_done); 
     loader.load(urlRequest); 

     var imageData:Object = { }; 
     imageData.loader = loader; 
     imageData.posX = img_x; 
     imageData.posY = img_y; 
     imageData.layer = layer; 

     // Now we have a single Array with a separate element for 
     // each image representing all its properties 
     loadedImages.push(imageData); 

     cptDemande++;   
    } 
관련 문제