`

AS 与 js 交互示例

阅读更多
ActionScript/Flash代码

package {
	import flash.display.Sprite;
	import flash.events.*;
	import flash.external.ExternalInterface;
	import flash.text.TextField;
	import flash.utils.Timer;
	import flash.text.TextFieldType;
	import flash.text.TextFieldAutoSize;

	public class ExternalInterfaceExample extends Sprite {
		private var input:TextField;
		private var output:TextField;
		private var sendBtn:Sprite;

		public function ExternalInterfaceExample() {
			input = new TextField();
			input.type = TextFieldType.INPUT;
			input.background = true;
			input.border = true;
			input.width = 350;
			input.height = 18;
			addChild(input);

			sendBtn = new Sprite();
			sendBtn.mouseEnabled = true;
			sendBtn.x = input.width + 10;
			sendBtn.graphics.beginFill(0xCCCCCC);
			sendBtn.graphics.drawRoundRect(0, 0, 80, 18, 10, 10);
			sendBtn.graphics.endFill();
			sendBtn.addEventListener(MouseEvent.CLICK, clickHandler);
			addChild(sendBtn);

			output = new TextField();
			output.y = 25;
			output.width = 450;
			output.height = 325;
			output.multiline = true;
			output.wordWrap = true;
			output.border = true;
			output.text = "Initializing...\n";
			addChild(output);

			if (ExternalInterface.available) {
				try {
					output.appendText("Adding callback...\n");
					ExternalInterface.addCallback("sendToActionScript", receivedFromJavaScript);
					if (checkJavaScriptReady()) {
						output.appendText("JavaScript is ready.\n");
					} else {
						output.appendText("JavaScript is not ready, creating timer.\n");
						var readyTimer:Timer = new Timer(100, 0);
						readyTimer.addEventListener(TimerEvent.TIMER, timerHandler);
						readyTimer.start();
					}
				} catch (error:SecurityError) {
					output.appendText("A SecurityError occurred: " + error.message + "\n");
				} catch (error:Error) {
					output.appendText("An Error occurred: " + error.message + "\n");
				}
			} else {
				output.appendText("External interface is not available for this container.");
			}
		}
		private function receivedFromJavaScript(value:String):void {
			output.appendText("JavaScript says: " + value + "\n");
		}
		private function checkJavaScriptReady():Boolean {
			var isReady:Boolean = ExternalInterface.call("isReady");
			return isReady;
		}
		private function timerHandler(event:TimerEvent):void {
			output.appendText("Checking JavaScript status...\n");
			var isReady:Boolean = checkJavaScriptReady();
			if (isReady) {
				output.appendText("JavaScript is ready.\n");
				Timer(event.target).stop();
			}
		}
		private function clickHandler(event:MouseEvent):void {
			if (ExternalInterface.available) {
				ExternalInterface.call("sendToJavaScript", input.text);
			}
		}
	}
}





JS/HTML代码

<!-- saved from url=(0014)about:internet -->
 <html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>ExternalInterfaceExample</title>
 <script language="JavaScript">
     var jsReady = false;
     function isReady() {
         return jsReady;
     }
     function pageInit() {
         jsReady = true;
         document.forms["form1"].output.value += "\n" + "JavaScript is ready.\n";
     }
     function thisMovie(movieName) {
         if (navigator.appName.indexOf("Microsoft") != -1) {
             return window[movieName];
         } else {
             return document[movieName];
         }
     }
     function sendToActionScript(value) {
         thisMovie("ExternalInterfaceExample").sendToActionScript(value);
     }
     function sendToJavaScript(value) {
         document.forms["form1"].output.value += "ActionScript says: " + value + "\n";
     }
 </script>
 </head>
 <body onload="pageInit();">
 
     <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
             id="ExternalInterfaceExample" width="500" height="375"
             codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
         <param name="movie" value="ExternalInterfaceExample.swf" />
         <param name="quality" value="high" />
         <param name="bgcolor" value="#869ca7" />
         <param name="allowScriptAccess" value="sameDomain" />
         <embed src="ExternalInterfaceExample.swf" quality="high" bgcolor="#869ca7"
             width="500" height="375" name="ExternalInterfaceExample" align="middle"
             play="true" loop="false" quality="high" allowScriptAccess="sameDomain"
             type="application/x-shockwave-flash"
             pluginspage="http://www.macromedia.com/go/getflashplayer">
         </embed>
     </object>
 
     <form name="form1" onsubmit="return false;">
         <input type="text" name="input" value="" />
         <input type="button" value="Send" onclick="sendToActionScript(this.form.input.value);" /><br />
         <textarea cols="60" rows="20" name="output" readonly="true">Initializing...</textarea>
     </form>
 
 </body>
 </html>



说明:
在Flash的输入框中输入信息,点击发送,可以在flash页面上显示出来;
在HTML的输入框中输入信息,点击发送,可以在Flash的文本框中显示出来


分享到:
评论

相关推荐

    AS3与JS交互通信(使用swfObject插入Flash)

    4、使用Flash中的ExternalInterface.addCallback方法创建接口,使JS能够调用AS中的函数。 包含swfobject.js与fla源文件。 (*下载swfObject开发版及示例请访问:http://code.google.com/p/swfobject/) 兼容性,...

    PHP与javascript实现变量交互的示例代码

    本例是PHP和javascript交互的例子,php中的值赋给js变量中,前提是这个php变量必须有值才行,就算是假分支中。比如php中的$flags在本例中为true,如果js中false语句写成:$title_1[removed] = “&lt;?php echo $...

    as3.0利用ExternalInterface与js交互的播放器

    在本文中,我们将深入探讨如何在AS3.0(ActionScript 3.0)中使用ExternalInterface类与JavaScript进行交互,特别是在实现一个自定义播放器的场景中。这个主题是针对那些希望在网页中集成Flash内容并与网页的...

    oc中UIWebView交互 JS交互

    二、JavaScript交互基础 1. stringByEvaluatingJavaScriptFromString方法:这是UIWebView的核心方法,通过该方法,我们可以向网页中的JavaScript发送命令并获取返回的结果。例如,我们可以在JavaScript中定义一个...

    AS3与JS通信

    然而,有时我们需要让Flash内容与网页的其他部分进行交互,比如获取用户输入、更新DOM元素或者实现页面导航,这就需要AS3与JS之间的通信。 二、通信方法 1. **ExternalInterface API**:这是AS3和JS通信的主要方式...

    iOS WKWebView 与js交互详解

    总的来说,WKWebView提供了强大的JavaScript交互能力,使得iOS应用能够与网页内容进行深度整合。理解并熟练运用这些交互机制,将有助于提升应用的功能性和用户体验。在实践中,开发者需要结合苹果的官方文档和各种...

    flex和javascript交互例子

    文件列表中的"flexjavascript"可能包含了一个实际的示例项目,包括Flex的源代码(如.mxml和.as文件)和JavaScript代码(如.js文件)。通过分析这些文件,我们可以深入理解Flex和JavaScript交互的细节,例如数据传递...

    as与js方法的相互调用

    在跨平台应用开发中,经常会遇到ActionScript (AS)与JavaScript (JS)之间的交互需求,尤其是在Flex(一种基于Adobe Flash的开发框架)的应用中。Flex是使用ActionScript编写,而网页环境通常由HTML和JavaScript控制...

    iOS WebView与Js 交互Demo

    以上就是iOS应用使用UIWebView与JavaScript交互的基本流程。在"WebViewDemo"项目中,你可以看到这些概念的实际应用。通过这样的交互,开发者可以实现诸如调用JavaScript函数、获取网页数据、控制网页行为等功能,使...

    flex与ajax交互、flex与javascript交互.docx

    ### Flex与Ajax交互、Flex与JavaScript交互 #### 一、引言 随着Web技术的发展,Flex作为一种基于Adobe Flash平台的应用开发框架,在企业级应用中曾经非常流行。它提供了丰富的用户界面构建工具,并能够与服务器端...

    FLEX通过AS3与FLASH交互

    这个类允许AS3代码与JavaScript在浏览器环境中进行通信,从而间接地实现了FLEX与HTML页面中的FLASH对象的交互。以下是实现这一交互的基本步骤: 1. **在FLASH中设置允许交互**:在FLASH的ActionScript面板中,为要...

    js和flash交互的小例子

    5. `defaultmp3.xml`:这个可能是Flash的音频配置文件,用于控制音频播放的相关设置,与我们的交互示例关系不大。 实现JS和Flash交互的一般步骤如下: 1. **创建Flash对象**:在HTML中,使用`&lt;object&gt;`或`&lt;embed&gt;`...

    flex与js交互浅析.docx

    Flex与JavaScript交互是一种常见的技术,尤其在开发富互联网应用程序(RIA)时,它允许Web页面中的Flash内容与HTML页面的JavaScript代码进行通信。这使得在Flex应用中利用JavaScript的功能,如DOM操作、Ajax请求等,...

    js调用AS flash函数

    首先,理解JS与AS通讯的基础是`ExternalInterface`,这是Flash Player提供的一个API,允许ActionScript代码与JavaScript环境进行交互。在AS端,你需要先启用`ExternalInterface.addCallback`方法来注册一个可供JS...

    FLASH与JS双向通信AS2

    本主题聚焦于"FLASH与JS双向通信AS2.0",即ActionScript 2.0版本的Flash与JavaScript之间的数据交换。 ActionScript是Adobe Flash Player支持的编程语言,主要用于创建互动性的内容,如动画、游戏和应用程序。AS2.0...

    webkit跟js交互

    WebKit提供了与JavaScript交互的能力,使得Android应用能够利用JavaScript的强大功能,同时保持与网页内容的紧密集成。在本项目"android跟js交互demo基于webkit的demo"中,我们将探讨如何在Android应用中通过WebKit...

    Swift-JS交互样例

    `Swift-JS-master`这个项目可能包含了各种示例代码,演示了如何在不同的场景下使用Swift与JavaScript的交互技巧。 总之,Swift与JavaScript的交互是iOS应用开发中的一个重要部分,它为开发者提供了更广阔的设计空间...

    js与as的相互调用Demo

    总结,"js与as的相互调用Demo"提供了一个基础的跨平台交互模型,它展示了如何在JavaScript和ActionScript之间无缝地传递信息和执行操作。这在需要结合两者优势的项目中尤其有用,比如创建具有互动性的多媒体内容或者...

    js与as通信,js调用flash的方法

    ExternalInterface的引入解决了早期版本Flash与JavaScript交互的限制,如Netscape Plugin API (NPAPI) 或ActiveX。 1. **ExternalInterface的添加和初始化**: 在AS3代码中,首先需要确保ExternalInterface可用,...

    Flash as3 cookie 操作实例源码

    通过查看和运行这些代码,你可以更深入地了解AS3与Cookie交互的工作原理,这对于开发涉及用户状态管理的Flash应用尤其重要。记住,虽然AS3可以直接处理HTTP请求,但处理Cookie通常需要服务器端的配合。

Global site tag (gtag.js) - Google Analytics