`

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 $...

    javascript前端和后台进行数据交互方法示例

    在开发中遇到了在没有jQuery的情况下需要与后台进行部分数据的交互,查找了部分资料使用JavaScript实现了操作,记录一下。 //获取XMLHttpRequest对象用于与后台交互数据 function getXHR(){ var xmlHttp; try {...

    ActiveX控件与Javascript之间的交互示例

    1、ActiveX向Javascript传参 代码如下: [removed] fun2(arg); [removed] objectname为ActiveX控件名,通过&lt;object&gt;标签里的id属性设定,如下; 代码如下: &lt;object id=”objectname” name=”objectname” ...

    php 接口与前端数据交互实现示例代码

    在本文中,我们将深入探讨如何使用PHP作为后端语言与前端进行数据交互,结合bootstrap-table和JavaScript技术。首先,我们要了解基本概念: 1. **PHP接口**:在PHP中,接口(Interface)是一种定义对象行为的方式,...

    FLASH CS3(AS3)和JS之间通信

    一个简单的示例 通过此例学习页面中的FLASH和JS之间的交互~ HTML文件最好在服务器上发布以后运行,或者设置FLASH的安全面板中添加此HTML所在的位置

    Python Flask前后端Ajax交互的方法示例

    之前总结过flask里的基础知识,现在来总结下flask里的前后端数据交互的知识,这里用的是Ajax 一、 post方法 1、post方法的位置:在前端HTML里,绑定在一个按钮的点击函数里,或者一个鼠标输入框点击离开事件。 (1...

    php数据库的增删改查 php与javascript之间的交互

    8. **PHP与JavaScript交互**: 示例中提到的交互主要涉及数据展示。例如,使用JavaScript动态创建下拉菜单,根据数据库中的数据数量生成选项。当用户选择某一选项时,可以通过JavaScript收集这些信息,然后通过AJAX...

    JS操作Word和Excel的方法

    首先,针对JS操作Word,我们可以利用ActiveXObject,这是一个仅在Internet Explorer中可用的对象,允许JavaScript与Windows应用程序进行交互。在给出的示例代码中,创建了一个新的Word应用程序实例: ```javascript...

    illustrator_scripting_reference_javascript_cs5

    例如,你可以通过改变Shape对象的fill属性来改变图形的填充色,或者调用Document对象的saveAs()方法来保存文件。 3. **函数和类**:Illustrator的JavaScript环境提供了一系列内置函数和类,如Color、Matrix、...

    Javascript与flash交互通信基础教程

    下面是一些在Flash和使用Javascript的HTML文件直接通信的示例,每个示例都有简略的步骤 本文讨论了3种基本的Flash/Javascript通信方式: Javascript 到 Flash的通信—-使用Flash播放器的javascript方法 Flash 到 ...

    网页中怎样控制Flash的播放与停止.pdf

    然后,通过JavaScript与这些AS3方法进行交互时,可能需要使用`ExternalInterface.addCallback`来暴露这些方法。 总的来说,控制网页中的Flash播放与停止涉及HTML、JavaScript和Flash ActionScript三者的协同工作。...

    flex通过js获取ip和pcname示例代码

    在本示例中,我们将探讨如何使用Flex与JavaScript结合来实现这一目标。标题提到的"flex通过js获取ip和pcname示例代码"正是针对这一需求提供的一个解决方案。 首先,我们来看JavaScript部分。在JavaScript中,获取PC...

    Discord-Bot:不和谐Bot示例Bot

    discord.js是功能强大的Node.js模块,可让您轻松地与Discord API进行交互。 面向对象 可预测的抽象 表演者 Discord API的100%覆盖率 安装 Node.js是必需的。 忽略有关未满足的对等依赖项的所有警告,因为它们都是...

    python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例

    为了实现Python与内嵌网页的数据交互,我们需要借助Qt官方提供的JavaScript库——qwebchannel.js。这个库允许JavaScript代码与Python对象进行通信,实现双向数据传递。 在实际应用中,首先需要在同一个目录下放置...

    使用原生js实现页面蒙灰(mask)效果示例代码

    现在就有一个比较良好的交互,就是增加蒙灰效果。像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,当然jquery也提供了这种蒙灰方法。在此作者希望自己也能够 使用原生的js实现自己的蒙灰效果。故自己做了尝试...

    node运行js获得输出的三种方式示例详解

    总结,Node.js运行JavaScript时,可以利用`console.log`进行基本的输出,通过文件读写实现数据持久化,或者启动HTTP服务与Web客户端进行通信。根据具体需求选择合适的方法,能更好地满足各种应用场景。了解并熟练...

    用ReactJS和Python的Flask框架编写留言板的代码示例

    近期要在生产环境上使用react,所以,自己学习了一下,写了一个简单的留言板...React是facebook开发一个用于前段交互的Javascript库。 刚刚开始使用,有这么几个特点: 1. 组件化开发。React提倡无状态的组件,便于重用

    midi-parser-js:JSON人类可读的MIDI序列。 从浏览器中的ArrayBuffers,Base64编码的字符串或FileInput元素中读取

    MidiParser.js MidiParser是用于浏览器和Node的Javascript二进制MIDI文件阅读器,可将MIDI二进制数据结构转换为JSON对象,从而使迭代和交互变得更加容易。 小而无依赖浏览器和节点兼容支持的数据输入: BASE64编码的...

    2011二月百度web前端笔试面试题目(一面二面).doc

    3. JavaScript和AS客户端动态化:JavaScript是实现网页交互的关键,通过DOM操作、AJAX技术与服务器进行数据通信,实现页面的动态更新。良好的编程习惯和面向对象编程能力对于优化JavaScript代码至关重要,同时,压缩...

Global site tag (gtag.js) - Google Analytics