2

externalinterface(externalinterface怎么样)

ExternalInterface:让Flash和JavaScript相互通信的有效方式

如果你是一个网站开发者或者游戏开发者,你一定知道Flash和JavaScript这两种技术。这两种技术都有各自独特的优点和应用场景,但它们之间的通信常常是一个问题。在Flash和JavaScript之间建立通信需要使用一种叫做ExternalInterface的技术,它是一种强大的方式,可以让Flash和JavaScript之间相互通信。在本文中,我们将深入了解ExternalInterface的优点、应用场景和用法,以便您更好地理解这种技术。

一、ExternalInterface 的优点

ExternalInterface是一种强大的技术,可以让Flash和JavaScript之间相互通信。这种技术有很多重要的优点,包括:

1、可靠性高:ExternalInterface是一种非常可靠的技术,它可以确保Flash和JavaScript之间的通信始终正常进行。

2、灵活性强:ExternalInterface非常灵活,可以应用于多种应用场景和开发环境。

3、易于使用:ExternalInterface非常易于使用,只需要几个简单的步骤就可以建立起Flash和JavaScript之间的通信。

二、ExternalInterface 的应用场景

ExternalInterface的应用场景非常广泛,其中一些主要的应用场景包括:

1、多媒体应用程序:ExternalInterface可以帮助开发者在Flash和JavaScript之间建立通信,以便建立多媒体应用程序。

2、游戏开发:ExternalInterface可以用于游戏开发,以建立游戏引擎和JavaScript之间的通信,以实现游戏的交互性和动态性。

3、网站开发:ExternalInterface可以帮助网站开发者在Flash和JavaScript之间建立通信,以便在网站上实现动态效果和交互性。

三、ExternalInterface 的用法

ExternalInterface的用法非常简单,只需要遵循以下步骤:

1、创建一个ActionScript函数,用于与JavaScript通信。

2、使用ExternalInterface.addCallback方法将ActionScript函数添加到JavaScript中。

3、JavaScript中调用ActionScript函数时,可以使用ExternalInterface.call方法。

4、Flash会将数据作为参数传递到ActionScript函数中。

下面我们来看一个基本的例子:

ActionScript:

function testFunction(data:String):String

{

return "Hello " + data;

}

ExternalInterface.addCallback("testFunction", testFunction);

JavaScript:

var result = swfObject.testFunction("World");

上面的例子中,ActionScript函数名为testFunction,它有一个字符串类型的参数,返回一个字符串类型的值。然后使用addCallback方法将ActionScript函数添加到JavaScript中。在JavaScript中,使用ExternalInterface.call方法调用ActionScript函数,在调用时传递“World”作为参数。最后,Flash会将数据作为参数传递到ActionScript函数中,并返回“Hello World”。最后,JavaScript获得返回值并将其存储在变量result中。

综上所述,ExternalInterface是一种非常有用的技术,可以让Flash和JavaScript之间相互通信。这种技术适用于多种应用场景和开发环境,且使用起来非常简单。如果您是网站开发者或游戏开发者,那么学习和掌握ExternalInterface技术是非常有必要的。

【前言】

在Web开发中,常常需要与Flash交互,实现双向传值、调用Flash中的函数等功能。这时候,ExternalInterface就是一个非常重要的工具。那么,externalinterface怎么样呢?接下来,我会详细介绍它的原理以及使用方法。

【要素1】ExternalInterface的原理

ExternalInterface是Flash与JS之间的桥梁。它能够让JS调用Flash中的函数,也能够让Flash调用JS中的函数。这个原理是基于两个关键点实现的:

1.浏览器安全机制

当两个不同域名下的页面进行通信时,浏览器认为可能存在安全问题,因此会限制通信。为了解除这个限制,需要在Flash中进行配置:在Flash中要调用JS函数时,需要在HTML页面中嵌入一段JavaScript代码,将允许通信的域名进行注册。

2.JS函数调用方式

JS调用Flash中的函数时,需要指定一个函数名,并且传递参数。Flash中的该函数必须使用ExternalInterface.addCallback()进行注册,此时必须指定函数名及对应的处理函数。当JS调用函数时,该函数会被自动触发执行,并将返回结果传递给JS。

【要素2】ExternalInterface的使用方法

在使用ExternalInterface时,需要注意以下几点:

1.在HTML页面中注册允许通信的域名:

```javascript

var flashVars = {};

flashVars.parm1 = "1";

var params = {};

params.allowScriptAccess = "always";

params.quality = "high";

params.bgcolor = "#FFFFFF";

var attributes = {};

attributes.id = "flashContent";

attributes.name = "flashContent";

swfobject.embedSWF("flash.swf", "flashContent", "500", "350", "9.0.0", "expressInstall.swf", flashVars, params, attributes);

```

2.在Flash中注册要调用的函数:

```actionscript

function init(){

//注册外部可调用函数

ExternalInterface.addCallback("functionName",function(){

//处理逻辑

//向JS回传值

ExternalInterface.call("callback", result);

});

}

```

3.在JS中调用Flash中的函数:

```javascript

document.getElementById("flashContent").functionName("param1");

```

以上就是ExternalInterface的使用方法,通过上述步骤,我们可以轻松地实现Flash与JS之间的双向调用、传值等功能。

【要素3】ExternalInterface的注意事项

在使用ExternalInterface时,需要注意以下几点:

1.使用前需要判断

在JS中调用Flash中的函数时,需确保Flash完全加载后再调用。因为Flash未完全加载完成,则不支持函数调用,会导致JS调用失败。

```javascript

if(flashLoaded){

//调用函数

}else{

setTimeout(function(){

jsFunc();

},100);

}

```

2.释放内存

Flash与JS都需要占用内存,因此在使用ExternalInterface时,需要注意及时释放内存,避免对浏览器性能造成影响。

```javascript

function releaseMemory(){

if (window.ActiveXObject){

for (var i in window){

try{

window[i] = null;

}catch(e){}

}

}

setTimeout(function(){

collectgarbage();

},100);

}

```

【结语】

本文来自网络,不代表本站立场。转载请注明出处: https://tj.jiuquan.cc/a-2375981/
1
上一篇5660(5660和5620哪个好)
下一篇 ie反应慢(ie慢的原因)

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: alzn66@foxmail.com

关注微信

微信扫一扫关注我们

返回顶部