2012-07-09 4 views
3

ActionScript에서 호스트와 통신하는 두 가지 옵션이 있습니다. 둘 사이의 주요 차이점이 무엇을ActionScript : fscommand vs ExternalInterface

fscommand(String, ...); 

ExternalInterface.call(String, ...); 

(플래시 무비를 호스팅하는 AxInterop.ShockwaveFlashObjects.dll를 사용하는 .NET 응용 프로그램 내 경우)?

fscommand가 호스트 측에서 약간 지연 될 수 있습니까? (즉,이 차단되지 않으며, 따라서 ExternalInterface를 호출을 혼동 수 있을까?)

답변

3

ExternalInterface Flash와 컨테이너 응용 프로그램 간의 통신의 이전 방법 (사전 플래시 플레이어 8)이었다 fscommand 직접 대체한다 (참조 Adobe documentation). 다음과 같이 문서에서

다시 ExternalInterface fscommand 이상의 장점은 다음과 같습니다

  • 당신은, 당신이 fscommand() 함수와 함께 사용 할 수 있습니다뿐만 아니라 기능을 자바 스크립트 기능을 사용할 수 있습니다.
  • 이름과 함께 여러 개의 인수를 전달할 수 있습니다. 당신은 명령과 단일 문자열 인수를 전달하는 것으로 제한되지 않습니다. 그러면 fscommand()보다 훨씬 유연한 외부 API 인 이 제공됩니다.
  • 다양한 데이터 유형 (예 : 부울, 숫자 및 문자열)을 전달할 수 있습니다. 더 이상 String 매개 변수에 국한되지 않습니다.
  • 호출의 값을받을 수 있으며 해당 값은 을 ActionScript에 즉시 반환합니다 (호출 한 호출의 반환 값).

Flash Player 8 이상을 타겟팅하는 경우 ExternalInterface을 사용하는 것이 좋습니다.

1

일반적으로 fscommand에 ExternalInterface를 사용하는 것이 좋습니다. fscommand는 더 이상 사용되지 않는 것으로 간주합니다.

그런데 ExternalInterface.call()이 호출 된 외부 함수에서 값을 반환 할 수 있기 때문에 비 블로킹 인 fscommand에 대한 언급은 정확할 수 있습니다. 상황에 따라 문제가 생길 수도 있고, fscommand를 선호 할 수도 있지만, 아마도 그것을 테스트해야 할 것입니다.

다시 말해서 ExternalType은 데이터 형식 및 ActionScript와 일반적인 외부 환경 (예 : 웹 페이지의 JavaScript) 간의 자동 serialization/deserialization과 같은 fscommand에없는 많은 기능을 가지고 있습니다. fscommand는 문자열. .NET 어플리케이션에서 ExternalInterface를 사용하면 ExternalInterface에 의해 내부적으로 사용되는 XML-RPC를 구문 분석해야 할 수도 있습니다. 그렇지만 확실하지 않습니다.