flex 와 js 의 상호작용

1. flex 코드 만 들 기:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()" layout="absolute" width="275" height="236">

<mx:Script>
	<![CDATA[
		import mx.messaging.messages.IMessage;
		import mx.messaging.messages.AsyncMessage;
		import mx.messaging.events.MessageEvent;
		import mx.controls.Alert;
		public var clientId:String;
		public var messagebody:String;

		public function sendMessage(newMessage:String):void{
			Alert.show(newMessage);
		}
		
		//    creationComplete="init()"             
		public function init():void {
			Security.allowDomain("*");
            Security.allowInsecureDomain("*");
            //         js   .       js          js   flex  
            ExternalInterface.addCallback("sendMessage",sendMessage);
            //        js   
			ExternalInterface.call("canLogin");
		} 
		
		public function seanmessagetojsp():void {
			ExternalInterface.call("showmessage","flex");
		} 				
	]]>
</mx:Script>

<mx:Button x="59" y="28" label="to jsp" click="seanmessagetojsp();" id="searchBtn" />
</mx:Application>

 
2. jsp 코드 만 들 기
 
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
	String realpath = (null == request.getParameter("realpath") ? "": request.getParameter("realpath"));
%>
<html lang="en">
  <head>
       <meta http-equiv="Content-Type" content="text/html; charset=GBK" />
       <META HTTP-EQUIV="Pragma" CONTENT="no-cache"/>
       <META HTTP-EQUIV="Expires" CONTENT="0"/>>
  </head>
  <body scroll="no">
      <object type='application/x-shockwave-flash'
	data='<%=realpath%>/flex/flexjsp.swf' width='300' height='300'
	name='test' id='MyFlexApps'>
	<param name='allowScriptAccess' value='always' />
	<param name='movie' value='<%=realpath%>/flex/flexjsp.swf' />
	<param name='quality' value='high' />
	<param name='scale' value='noScale' />
	<param name='wmode' value='transparent' />
     </object>
     <input type="button" value="toflex" onclick="sendmes();"/>
   </body>
<script>
    function showmessage(value){
        alert('flex to jsp:  ' + value);
    }
	
    function sendmes(){
        var seatid = "jsp to flex";
        callApp(seatid);
    }
    function canLogin(){
        alert(' flex to js    ');
    }
    function callApp(data) {
        getSWF("MyFlexApps").sendMessage(data);
    }
    function getSWF(movieName) {
        if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
        } else {
            return document[movieName];
    }
}
</script>
</html>

 
 
3. 생 성 된 swf 파일 을 웹 아래 플 렉 스 폴 더 아래 에 놓 습 니 다.jsp 경 로 를 열 면 실행 결 과 를 볼 수 있 습 니 다.
 
첨부 파일 에 생 성 된 것 이 이미 존재 합 니 다.  swf 파일

좋은 웹페이지 즐겨찾기