0
네트워크 오류가 발생하면 Chrome에서 오류 처리기의 이벤트 객체가 IE 및 Flash Player와 다르게 동작합니다 (브라우저가 아닌 swf를 직접 실행). 다음 테스트 코드 고려 : IE 및 플래시 플레이어에서Chrome AS3 URLLoader 네트워크 오류에서 다른 동작
private function loadData():void { var loader:URLLoader = new URLLoader(); loader.addEventListener(IOErrorEvent.IO_ERROR, onError); loader.addEventListener(Event.COMPLETE, onColmplete); loader.load(new URLRequest("http://www.jsfbjdsssde.com")); debugField.text = "loading"; // this is a TextField } private function onColmplete(evt:Event):void { debugField.text = "complete"; } private function onError(evt:IOErrorEvent):void { debugField.text = "error : " + evt.text; }
을 debugField는
error : Error #2032: Stream Error. URL: http://www.jsfbjdsssde.com를 표시하지만 크롬에서이 URL 텍스트에서 제거된다
error : Error #2032이다. 왜 이것이 다른가요? 누구든지 오류 처리기에서 URL을 가져 오는 방법을 제안 할 수 있습니까? 아니면 크롬 자체의 버그입니까?
내 크롬 버전은 5.0.375.86
그럴 수도 있습니다. 어도비의 설명서에 URL이 포함될 것인지 아닌지에 대한 자세한 내용은 없습니다 (적어도 찾지 못했습니다). 오류 리스너에서 URL을 가져 오는 적절한 방법이 있습니까? 아니면 절대 의지해서는 안됩니다. – taskinoor
@ taskinoor. 내가 생각할 수있는 유일한 신뢰할 수있는 방법은 직접 추적하는 것입니다. 오류 메시지 문자열의 파싱에 의존하는 것이 좋을지라도 API의 일부는 아닙니다. 그것은 기본적으로 예고없이 변경 될 수 있습니다 (또한 경우에 따라, 항상 사용 가능하지 않을 수도 있음). –
반면에 로더를 시작할 때 URL을 확실히 알고 있어야합니다. 추가 변수가있는 것만 큼 간단 할 수 있습니다 (한 번에 두 번 이상 호출하지 않는 경우). 좀더 구조체를 추가하려면 내부적으로 URLLoader를 사용하는 사용자 정의 로더를 만들고 getter를 통해 요청 된 URL을 노출하거나 URL을 응답 데이터와 함께 전달하는 사용자 정의 이벤트를 만들 수도 있습니다 (또는 어쩌면 url하지만 전체 URLRequest 객체, 당신이하려는 일에 의미가있는 경우). –