iLeichun

当前位置: 首页 > ActionScript

ActionScript与js交互代码

分类:ActionScript   来源:网络   时间:2011-07-23 00:22:30
  1. package {   
  2.     import flash.display.Sprite;   
  3.     import flash.events.*;   
  4.     import flash.external.ExternalInterface;   
  5.     import flash.text.TextField;   
  6.     import flash.utils.Timer;   
  7.     import flash.text.TextFieldType;   
  8.     import flash.text.TextFieldAutoSize;   
  9.   
  10.     public class ExternalInterfaceExample extends Sprite {   
  11.         private var input:TextField;   
  12.         private var output:TextField;   
  13.         private var sendBtn:Sprite;   
  14.   
  15.         public function ExternalInterfaceExample() {   
  16.             input = new TextField();   
  17.             input.type = TextFieldType.INPUT;   
  18.             input.background = true;   
  19.             input.border = true;   
  20.             input.width = 350;   
  21.             input.height = 18;   
  22.             addChild(input);   
  23.   
  24.             sendBtn = new Sprite();   
  25.             sendBtn.mouseEnabled = true;   
  26.             sendBtn.x = input.width + 10;   
  27.             sendBtn.graphics.beginFill(0xCCCCCC);   
  28.             sendBtn.graphics.drawRoundRect(0080181010);   
  29.             sendBtn.graphics.endFill();   
  30.             sendBtn.addEventListener(MouseEvent.CLICK, clickHandler);   
  31.             addChild(sendBtn);   
  32.   
  33.             output = new TextField();   
  34.             output.y = 25;   
  35.             output.width = 450;   
  36.             output.height = 325;   
  37.             output.multiline = true;   
  38.             output.wordWrap = true;   
  39.             output.border = true;   
  40.             output.text = "Initializing... ";   
  41.             addChild(output);   
  42.   
  43.             if (ExternalInterface.available) {   
  44.                 try {   
  45.                     output.appendText("Adding callback... ");   
  46.                     ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);   
  47.                     if (checkJavaScriptReady()) {   
  48.                         output.appendText("JavaScript is ready. ");   
  49.                     } else {   
  50.                         output.appendText("JavaScript is not ready, creating timer. ");   
  51.                         var readyTimer:Timer = new Timer(1000);   
  52.                         readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);   
  53.                         readyTimer.start();   
  54.                     }   
  55.                 } catch (error:SecurityError) {   
  56.                     output.appendText("A SecurityError occurred: " + error.message + " ");   
  57.                 } catch (error:Error) {   
  58.                     output.appendText("An Error occurred: " + error.message + " ");   
  59.                 }   
  60.             } else {   
  61.                 output.appendText("External interface is not available for this container.");   
  62.             }   
  63.         }   
  64.         private function receivedFromJavaScript(value:String):void {   
  65.             output.appendText("JavaScript says: " + value + " ");   
  66.         }   
  67.         private function checkJavaScriptReady():Boolean {   
  68.             var isReady:Boolean = ExternalInterface.call("isReady");   
  69.             return isReady;   
  70.         }   
  71.         private function timerHandler(event:TimerEvent):void {   
  72.             output.appendText("Checking JavaScript status... ");   
  73.             var isReady:Boolean = checkJavaScriptReady();   
  74.             if (isReady) {   
  75.                 output.appendText("JavaScript is ready. ");   
  76.                 Timer(event.target).stop();   
  77.             }   
  78.         }   
  79.         private function clickHandler(event:MouseEvent):void {   
  80.             if (ExternalInterface.available) {   
  81.                 ExternalInterface.call("sendToJavaScript", input.text);   
  82.             }   
  83.         }   
  84.     }   
  85. }  

 

  1. <html lang="en">  
  2.  <head>  
  3.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  4.  <title>ExternalInterfaceExample</title>  
  5.  <script language="JavaScript">  
  6.      var jsReady = false;   
  7.      function isReady() {   
  8.          return jsReady;   
  9.      }   
  10.      function pageInit() {   
  11.          jsReady = true;   
  12.          document.forms["form1"].output.value += " " + "JavaScript is ready. ";   
  13.      }   
  14.      function thisMovie(movieName) {   
  15.          if (navigator.appName.indexOf("Microsoft") != -1) {   
  16.              return window[movieName];   
  17.          } else {   
  18.              return document[movieName];   
  19.          }   
  20.      }   
  21.      function sendToActionScript(value) {   
  22.          thisMovie("ExternalInterfaceExample").sendToActionScript(value);   
  23.      }   
  24.      function sendToJavaScript(value) {   
  25.          document.forms["form1"].output.value += "ActionScript says: " + value + " ";   
  26.      }   
  27.  </script>  
  28.  </head>  
  29.  <body onload="pageInit();">  
  30.     
  31.      <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"  
  32.              id="ExternalInterfaceExample" width="500" height="375"  
  33.              codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">  
  34.          <param name="movie" value="ExternalInterfaceExample.swf" />  
  35.          <param name="quality" value="high" />  
  36.          <param name="bgcolor" value="#869ca7" />  
  37.          <param name="allowScriptAccess" value="sameDomain" />  
  38.          <embed src="ExternalInterfaceExample.swf" quality="high" bgcolor="#869ca7"  
  39.              width="500" height="375" name="ExternalInterfaceExample" align="middle"  
  40.              play="true" loop="false" quality="high" allowScriptAccess="sameDomain"  
  41.              type="application/x-shockwave-flash"  
  42.              pluginspage="http://www.macromedia.com/go/getflashplayer">  
  43.          </embed>  
  44.      </object>  
  45.     
  46.      <form name="form1" onsubmit="return false;">  
  47.          <input type="text" name="input" value="" />  
  48.          <input type="button" value="Send" onclick="sendToActionScript(this.form.input.value);" /><br />  
  49.          <textarea cols="60" rows="20" name="output" readonly="true">Initializing...</textarea>  
  50.      </form>  
  51.     
  52.  </body>  
  53.  </html>  
更多