首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

AS与JS相互通信

2012-08-14 
AS与JS互相通信不说废话,直接贴代码。。。AsJsComm.aspackage {import flash.display.Spriteimport flash.ex

AS与JS互相通信

不说废话,直接贴代码。。。

AsJsComm.as

package {import flash.display.Sprite;import flash.external.ExternalInterface;public class AsJsComm extends Sprite {/** * 构造函数 */public function AsJsComm() {// 注册一个AS方法供JS调用ExternalInterface.addCallback('callback', callback);// AS调JS方法(此alert为window对象的alert方法)ExternalInterface.call('alert', 'AS: Hello JS!');}/** * 回调方法 */public function callback(str:String):void {// 为了方便查看,直接调用JS的弹框ExternalInterface.call('alert', str);}}}


index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>AsJsComm</title><script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script></head><body><div id="flash">  <div id="flashObj">loading...</div></div><script type="text/javascript">(function() {var id = 'flashObj',width = '800',height = '680',version = '9.0.0',expressInstallSwfUrl = '',flashVars = {},params = {id: id,allowScriptAccess: 'always',allowFullScreen: 'true',quality: 'high',wmode: 'opaque',bgcolor: '#000',menu: 'false'},attributes = {},callbackFn = function(data) {},swfUrl = 'AsJsComm.swf';swfobject.embedSWF(swfUrl, id, width, height, version, expressInstallSwfUrl, flashVars, params, attributes, callbackFn);window.onload = function() {// JS调AS方法document.getElementById(id).callback('JS: Nice to meet you AS!');};})();</script></body></html>

简要说明:

1、只要html页面中能正常访问的JS方法,AS中都可以直接用ExternalInterface.call调用,不需要另作其他声明;

2、AS中的方法要供JS调用,必须先调用ExternalInterface.addCallback注册,注册的方法会绑定在html页中flash元素的object对象上;

3、没了。。。

热点排行
Bad Request.