2010-12-06 1 views
-1

다음 액션 스크립트/플렉스 코드를 고려하십시오.Flex/Actionscript에서 LocalConnection.send가 상태 오류를 생성 한 것을 어떻게 알 수 있습니까?

 var LC:LocalConnection=new LocalConnection(); 
    LC.addEventListener(StatusEvent.STATUS, Status); 
    LC.send('A', 'SomeMethodName', 'Message'); 
    LC.send('B', 'SomeMethodName', 'Message'); 
    LC.send('C', 'SomeMethodName', 'Message'); 

public function Status(event:StatusEvent):void { 
    if (event.level=='error') { 
    // How Can I Know if the error came from 'A', 'B', or 'C' above? 
    } 
} 

이 아닌 것으로 가정는 직렬로 송신을 실행하지만 위와 같이 평행선으로 (한꺼번에) 실행하고 추가로 가정합니다. send 명령 중 하나가 level = 'error'인 상태 이벤트를 생성합니다.

어떤 send 명령이 상태 오류를 생성했는지 어떻게 알 수 있습니까?

답변

2

여러 LocalConnections를 사용해야하는 경우 모든 ConnectionID에 대해 다른 인스턴스를 사용하고이를 관리하는 홀더 클래스를 만들었습니다.

0

귀하가 보내는 모든 메시지가 일 때 으로 상태가 올라갈 것으로 생각됩니다. 따라서 오류가 발생하기 전에 2 개의 상태 메시지가있는 경우 C입니다.

LocalConnection과 관련하여 일부 배열에서 보내는 메시지를 저장하는 래퍼가있을 수 있으며 상태 메시지를 수신 할 때마다이를 제거합니다. 오류가 발생하면 대기열의 헤드에있는 메시지가 오류를 일으킨 것입니다.

+2

오류 메시지가 표시되기 전에 두 상태 메시지가 표시되도록 어떻게 확신 할 수 있습니까? 예를 들어 "B"에서 오류가 발생한다고 가정 해 봅시다. - 상태, 오류, 상태 인 일련의 사건에 의지 할 수 있다고 생각하지 않습니다. 상태, 상태, 오류처럼 쉽게 될 수 없습니까? 이 비동기 환경에서 성공보다 오류를 판별하는 데 오랜 시간이 걸릴 수 있습니다. 두 번째 아이디어를 사용하더라도 정확한 이벤트 전송과 정확한 이벤트 응답을 연관시키는 방법에 여전히 직면 해 있습니다. 그 연관 관계를 어떻게 유지할 수 있는지에 대해 좀 더 구체적으로 설명해 주시겠습니까? – Joshua

관련 문제