2009-03-12 4 views
0

내가 처리하고 접수에 파견 사용자 정의 이벤트 FileReferenceList.fileList [] 사용자가 다음과 같은 코드를 선택 여러 파일로 .. 나는 계속 checkImageDimensions에 난을 전달해야플렉스 - 표준 이벤트

for (i=0;i < event.currentTarget.fileList.length; i ++){ 
fileByteData = new ByteArray(); 
fileByteData = (event.currentTarget.fileList[i].data as ByteArray);     
loader = new Loader(); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, checkImageDimensions); 
loader.loadBytes(fileByteData);      
} 

어떤 이미지를 추적하는지, 맞춤 이벤트를 쉽게 만들 수는 있지만 적절한 시간에 실행하려면이 이벤트가 필요합니다. 이상적으로는 .. 이런 식으로 뭔가를 할 수

var myEvent:CustomEvent = new CustomEvent(i); 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, this.dispatchEvent(CustomEvent)) 

하지만 솔직히 말해서, 내가 진행하는 방법이 확실하지 ...

누군가가 나를 도울 수 있습니까? 감사!

답변

2

수신기 기능을 만들어야합니다. 함수 호출로 충분하지 않습니다. dispatchEvent에 클래스 이름을 전달해도 작동하지 않습니다. 방법은 다음과 같습니다.

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void { 
    dispatchEvent(new CustomEvent(i)); 
}); 

이벤트에서 필요한 것이 모두 유형 문자열 인 경우 맞춤 이벤트 클래스가 반드시 필요하지는 않습니다. 당신은 단순히이 경우 이벤트 클래스를 사용할 수 있습니다 :

public static const MY_CUSTOM_EVENT:String = "myCustomEvent";  
... 
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event):void { 
    dispatchEvent(new Event(MY_CUSTOM_EVENT)); 
}); 

편집을 :

var evt:DynamicEvent = new DynamicEvent(MY_CUSTOM_EVENT); 
evt.attr1 = val1; 
evt.attr2 = val2; 
dispatchEvent(evt); 
: 당신이 정말 게으른 만, 여전히 이벤트에 값을 전달하려는 경우, 당신은 DinamicEvent 클래스를 사용할 수 있습니다

물론 오류가 적은 클래스를 선언하면 오류가 덜 발생합니다.

+0

서로 다른 순서로 실행되는 경우 서로 다른 이벤트와 함께 정수를 전달해야합니다. 두 번째 방법으로 어떻게이 일을 할 수 있는지 모르겠다. 그래도 힌트를 가져 주셔서 감사합니다! – adam