Flex (ActionScript) 와 JavaScript 가 상호작용 하 는 두 가지 방식 예시

3970 단어 actionscript
각 부서 의 정보 화 발전 에 따라 서로 연결 되 고 공유 하 며 조율 하 는 것 이 점점 더 많은 고객 들 에 게 중시 되 고 있다.많은 새로운 프로젝트 들 이 기 존의 초기 시스템 을 통합 시 켜 야 하고 적어도 상호작용 도 킹 을 실현 해 야 한다.오늘 여러분 과 공유 하 는 것 은 시스템 연결 에서 ActionScript 와 JavaScript 가 상호작용 을 실현 하 는 두 가지 방식 입 니 다. 여러분 의 업무 와 학습 에 도움 이 되 기 를 바 랍 니 다.
  A.ExternalInterface
Flex 가 제공 하 는 External Interface 류 는 두 개의 정적 속성 과 두 개의 정적 방법 을 포함한다.이 속성 과 방법 은 외부 인터페이스 연결 에 대한 정 보 를 얻 고 ActionScript 에서 용기 의 코드 를 실행 하 며 ActionScript 함 수 를 용기 에서 호출 할 수 있 도록 합 니 다.
  ExternalInterface.available 현재 Flash Player 가 외부 인 터 페 이 스 를 제공 하 는 용기 에 있 는 지 속성 을 표시 합 니 다.외부 인터페이스 가 사용 가능 하 다 면 이 속성 은 true;그렇지 않 으 면 false。External Interface 클래스 의 다른 기능 을 사용 하기 전에 현재 용기 가 외부 인터페이스 통신 을 지원 하도록 항상 검 사 를 해 야 합 니 다. 다음 과 같 습 니 다.
  if (ExternalInterface.available)  {      // Perform ExternalInterface method calls here.  }


플 렉 스 개발 이 완 료 된 GIS 모듈 을 기 존 ASPX 나 JSP 등 사이트 시스템 과 통합 해 야 한다 고 가정 하면.생각 하 실 거 라 고 믿 습 니 다. swfobject。맞다 swfobject 는 컴 파일 된 Flex 응용 프로그램 을 기 존 시스템 의 해당 페이지 에 삽입 할 수 있 습 니 다.
방법 은 다음 과 같다.
   swfobject.embedSWF("ArcGIS/Flex/gis.swf", "map_canvas", "100%", "100%", "9.0.0", "flashplayer/expressInstall.swf", flashvars);


주요 매개 변 수 는 첫 번 째 로 내 장 된 컴 파일 후 프로그램 (gis. swf), 내 장 된 위치 (id 는 map canvas 의 div), 용기 사이즈 파라미터, FlashPlayer 버 전, 부족 한 알림, 전송 매개 변수 등 입 니 다.
다음은 내 장 된 시스템 의 상호작용 문제 입 니 다.우선, 기 존의 업무 시스템 이 GIS 모듈 을 호출 하 는 파 라 메 터 를 전달 해 야 한다 면 어떻게 조작 합 니까?External Interface 의 addCallback 방법 은 외부 용기 가 Flex 내부 방법 에 대한 접근 을 실현 할 수 있 습 니 다.해 야 할 일 은 Flex 에서 해당 하 는 방법 을 등록 하면 된다.동작 은 다음 과 같 습 니 다.
   ExternalInterface.addCallback("flexFun",doFunfromJS);


상기 등록 후 업무 시스템 에서 등 록 된 함수 명 flex Fun 을 사용 하여 상호작용 을 할 수 있 습 니 다. 조작 방법 은 다음 과 같 습 니 다.
   function getCoordinate(qyId) {

	        if (qyId != "-1") {

	            document.getElementById('map_canvas').flexFun("1",qyId);

	        } else {

	            alert("         ");

	        }



	    }


주의해 야 할 것 은 이러한 방식 은 컴 파일 된 swf 가 용기 에 불 러 온 후에 야 해당 하 는 방법 을 사용 할 수 있 습 니 다. 그렇지 않 으 면 오 류 를 알려 주 고 판단 을 추가 하여 피 할 수 있 습 니 다.
또한 External Interface 는 자바 스 크 립 트 를 호출 하 는 방법 과 같은 용기 이외 의 방법 을 호출 할 수 있 는 방법 도 제공 합 니 다.조작 방식 이 비교적 간단 하 다.
  ExternalInterface.call("jsfun",resultAS.toString());


그 중에서 jsfun 은 javaScript 의 함수 명 이 고 resultAS 는 전 송 된 매개 변수 입 니 다.
  function jsfun(result){

				

				var rs = document.getElementById("result");

				rs.value = "    :" + '
' + result; }

이 를 통 해 GIS 모듈 의 플 렉 스 조회 결 과 를 업무 시스템 에 되 돌려 줄 수 있다.
  B.FlexGlobals
또한 FlexGlobals 류 도 간단 한 단 방향 매개 변수 전달 을 실현 할 수 있다.FlexGlobals. topLevel 응용 프로그램. parameters 는 업무 시스템 의 해당 매개 변 수 를 가 져 와 해당 하 는 초기 화 또는 진일보 한 작업 을 할 수 있 습 니 다.
비 즈 니스 시스템 매개 변수 전달, 조작 은 다음 과 같 습 니 다.
  <script type="text/javascript">

   var flashvars = {}; 	   

	    flashvars.QY_id =  <% =Request["ID"] %>;

     swfobject.embedSWF("ArcGIS/Flex/update.swf", "map_canvas", "100%", "100%", "9.0.0", "flashplayer/expressInstall.swf",flashvars);

  </script>


위 와 같이 업무 시스템 의 기업 id 를 Flex 에 전달 하 는 GIS 모듈 을 초기 화 할 수 있 습 니 다. Flex 코드 는 다음 과 같 습 니 다.
  var jsParams:Object=FlexGlobals.topLevelApplication.parameters;

  qy_id=jsParams["QY_id"];

  var where:String="QY_id ="+qy_id;

  queryOnResult(where);


결론: ActionScript 와 JavaScript 의 상호작용 을 실현 하 는 방식 은 여러 가지 가 있 을 수 있 습 니 다. 그러나 상기 두 가 지 는 제 가 최근 에 고객 시스템 과 연결 하 는 과정 에서 사용 한 두 가지 입 니 다. 비교적 간단 하고 사용 하기 쉬 운 것 같 습 니 다. 이 정리 와 공유 도 여러분 이 해당 하 는 작업 을 하 는 과정 에서 참고 하 시기 바 랍 니 다.

좋은 웹페이지 즐겨찾기