모든 응용 프로그램에서 모든 데이터 액세스 객체 클래스와 공유되는 싱글 톤 패턴 내에 NetConnection 객체가 있다고 가정 해 봅니다. 이제 화면에 가서 실수 나 다른 것을 검색하기 위해 5 천 개의 레코드를로드하라는 요청을 받았습니다. 하지만 이제는 당신이 틀린 화면에 있다는 것을 깨달았고 실제로 다른 "엔터티"로부터 5 천개의 레코드를 원합니다. 데이터가 도착할 때까지 2 분 정도 기다리지 않아도 다른 화면으로 이동하여 다른 데이터를 요청할 수 없게하는 방법은 무엇입니까? NetConnection.close()
이벤트의 주요 발신자로 ESC 버튼을 사용했지만 실제로 작동하지 않습니다. 그것은 단지 빈 이벤트를 보내고 호출은 여전히 반환됩니다. 나는 서버에 자신의 일을 계속하지 말라고 요청할 수 없다는 것을 알고 있지만, ESC 나 그와 비슷한 것을 누른 후에 ActionScript가 더 이상 특정 호출을 신경 쓸 필요가 없다는 것을 어떻게 확신 할 수 있는지 알고 싶습니다. 너의 삶과 함께 움직여 라. 그리고 서버가 해당 호출에 응답 할 때 배경에서 이미 취소하기로 동의했기 때문에이를 버릴 것입니다.NetConnection을 사용하여 AMF 통화를 취소하는 방법은 무엇입니까?
Ps : ESC 버튼을 듣고 몇 가지 방법으로 호출하는 방법에 의심의 여지가 없습니다. 사용자가 데이터 수신을 원하지 않는다고 결정한 후에 무엇을 호출해야하는지 알고 싶습니다. 더 이상 앱을 종료하고 다시 열지 않아도 계속 이동하고 싶어합니다.
편집 :
내가 전화를 한 후 응답자의 오브젝트를 파괴하는 시도했지만 작동하지 않았다. 여기에 설명 된 코드
public function call(command:String, f:Function, fault:Function, ...parameters):void{
var r:Responder = new Responder(f, fault);
this._Responder = r;
if(parameters.length == 0)
GATEWAY.call(command, _Responder);
else
GATEWAY.call(command, _Responder, parameters);
}
public function close():void{
_Responder = new Responder(function(obj:Object):void{}, function(obj:Object):void{});
//_Responder = null;
trace("Canceled");
}
, 나는
NetConnection::call
에 대한 호출을 중단하고 내가 쓴 '통화 기능 "을 호출하기 시작했다. 따라서이 함수는 클래스 범위에 속할 Responder를 만들었습니다. 그래서 호출이 이루어지고 ESC 버튼이 "Close"함수를 호출 한 후에도 액세스 할 수있었습니다. null로 설정하고 다시 빌드하려고했습니다. 그것은 작동하지 않았다. NetConnection이 호출 한 후 Responder를 변경할 수 없다고 생각합니다.
당신이 싱글 연결 또는이에서 얻을 찾고 어떤 혜택을 사용해야 할 이유가 있나요? 당신이 호출하는 싱글 톤에서 cancel 메서드를 설정하는 것에 상관없이, cancel 메서드에서 새로운 NetConnection을 만들고 사용자가 사용했던 핸들러를 비활성화합니다 (솔직히 직접 NetConnection을 많이 사용하지는 않았지만 우리는 AbstractService RPC 클래스와 IResponder는 유사한 태스크를 구현하기 위해 객체를 구현하지만, 일반적으로 우리는 각각의 서비스 클래스가 아닌 각각의 자바 서비스에 대한 서비스 클래스의 인스턴스를 가지고있다. – shaunhusain
'NetConnection :: close'를 호출하고,'NetConnection' 클래스를 재 빌드하고 객체를 null로 설정하려고했습니다. 또한 NetConnection 객체뿐 아니라 Responder 객체에 대해서도 null을 설정하는 편집에서 지금까지 설명한 내용을 시도했습니다. 아무것도 작동하는 것 같습니다. –