flash与js通讯方法

Flash与JS通讯是前端开发中经常遇到的问题,下面我来为大家详细讲解一下Flash与JS通讯方法的完整攻略。

Flash与JS通讯方法

Flash与JS之间的通讯一般通过两种方式,一种是Flash调用JS方法,另一种是JS调用Flash方法。下面分别详细讲解这两种方式。

Flash调用JS方法

Flash调用JS方法是通过ExternalInterface实现的,其中调用的语法如下:

ExternalInterface.call("javascript_function_name", args...)

其中,javascript_function_name是要调用的JS方法名,args...是传递给JS方法的参数。

下面是一个Flash调用JS方法的示例代码:

import flash.external.ExternalInterface;

ExternalInterface.call("jsMethod", "Hello World!");

这个示例代码会调用名为jsMethod的JS方法,处理字符串参数Hello World!

JS调用Flash方法

JS调用Flash方法主要是通过document.getElementById("flashId")获取Flash对象,在获取到Flash对象后,调用其提供的方法。下面是具体的示例代码:

// 获取Flash对象
var flashObj = document.getElementById("flashId");
// 调用Flash方法
flashObj.flashMethod("Hello World!");

上面这段代码中,flashObj变量获取到的就是idflashId的Flash对象,之后就可以调用其中的flashMethod方法,并传递字符串参数Hello World!

Flash与JS通讯注意事项

以上两种方法虽然简单,但在实际应用中还有一些需要注意的事项:

  1. ExternalInterface.call()方法仅适用于IE、Firefox、Chrome和Safari浏览器,不适用于Opera;
  2. 对于调用JS方法或JS调用Flash方法,两者必须在同一域名下,在不同域名下通讯会出现安全问题;
  3. 在Flash中使用ExternalInterface调用JS方法时,必须在HTML页面中嵌入Flash时,在<object><embed>标签中添加<param name="allowScriptAccess" value="always" />,否则会抛出异常。

示例说明

下面提供两个使用Flash与JS通讯的示例。

示例一

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Flash与JS通讯示例一</title>
    <script>
        function flashCallback(msg) {
            alert(msg);
        }
    </script>
</head>
<body>
    <object id="flashId" width="0" height="0" type="application/x-shockwave-flash">
        <param name="movie" value="flash.swf" />
        <param name="allowScriptAccess" value="always" />
    </object>
    <button onclick="document.getElementById('flashId').flashMethod('Hello World!')">Click Me</button>
</body>
</html>

Flash代码:

// ExternalInterface回调函数
ExternalInterface.addCallback("flashMethodCallback", null, flashMethodCallback);

// flashMethod方法
function flashMethod(msg:String):void {
    ExternalInterface.call("flashCallback", "Flash调用JS方法:" + msg);
}

// JS回调函数
function flashMethodCallback(msg:String):void {
    trace("JS调用Flash方法:" + msg);
}

在该示例中,Flash调用JS的回调函数为flashCallback,而JS调用Flash的回调函数为flashMethodCallback,通过这两个回调函数实现登录验证。

示例二

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Flash与JS通讯示例二</title>
    <script>
        function flashCallback(msg) {
            alert(msg);
        }
    </script>
</head>
<body>
    <object id="flashId" width="100%" height="100%" type="application/x-shockwave-flash">
        <param name="movie" value="flash.swf?rand=Math.random()" />
        <param name="allowScriptAccess" value="always" />
    </object>
    <button onclick="document.getElementById('flashId').flashMethod('Hello World!')">Click Me</button>
</body>
</html>

Flash代码:

// ExternalInterface回调函数
ExternalInterface.addCallback("flashMethodCallback", null, flashMethodCallback);

// flashMethod方法
function flashMethod(msg:String):void {
    ExternalInterface.call("flashCallback", "Flash调用JS方法:" + msg);
}

// JS回调函数
function flashMethodCallback(msg:String):void {
    trace("JS调用Flash方法:" + msg);
}

在该示例中,JS调用Flash的回调函数同样为flashMethodCallback,Flash通过Math.random()获取到不同的随机数,避免Flash缓存问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flash与js通讯方法 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • js表单验证实例讲解

    下面是一份关于“JS表单验证实例讲解”的攻略,包括两个示例说明。 1. 什么是JS表单验证? JS表单验证是一种验证表单数据输入是否符合规范的技术,它可以帮助开发者避免用户输入错误的数据,提高网站的安全性和易用性。 2. JS表单验证的实现方法 通常,JS表单验证可以通过以下方法实现: 使用HTML5表单元素的验证功能:例如使用<input>元素…

    JavaScript 2023年6月10日
    00
  • Javascript Date setUTCMinutes() 方法

    以下是关于JavaScript Date对象的setUTCMinutes()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的setUTCMinutes()方法 JavaScript的setUTCMinutes()方法设置对象UTC分钟部分。该方法接受一个整数,表示要设置的UTC分钟。如果该参数超出了JavaScript所能表示的范围,…

    JavaScript 2023年5月11日
    00
  • js 回车提交表单两种实现方法

    让我为你详细讲解一下“js 回车提交表单两种实现方法”的完整攻略。 1. 利用form表单的onsubmit事件 我们可以通过在form表单上绑定一个onsubmit事件来实现回车提交表单的功能。下面是一段示例代码: <form onsubmit="return false;"> <input type="te…

    JavaScript 2023年6月10日
    00
  • Vue-Router进阶之滚动行为详解

    Vue-Router进阶之滚动行为详解 什么是滚动行为?为什么需要滚动行为? 在Vue-Router中,我们可以使用路由跳转来实现前后端页面之间的跳转,但是当我们来回切换不同的路由时会发现一个问题:每次切换完页面,新页面都会从顶部开始显示,这给用户带来了不好的体验。 这个问题可以通过设置滚动行为来解决。滚动行为可以定义在路由配置中,配合自定义行为函数,实现路…

    JavaScript 2023年6月11日
    00
  • JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)的使用

    当涉及到JavaScript中本地存储(LocalStorage)和会话存储(SessionStorage)时,我们需要首先了解这两种存储方式的概念和用途。 本地存储(LocalStorage)和会话存储(SessionStorage) 本地存储(LocalStorage)和会话存储(SessionStorage)都是HTML5中Web StorageAPI…

    JavaScript 2023年6月11日
    00
  • JavaScript快速入门(二)

    文件中引入JavaScript 嵌入到HTML文件中 在body或者head中添加script标签 <script> var age = 10; console.log(age); </script> 引入js文件 创建一个js文件 var age = 20; console.log(age); 在html文件中src引入改文件 &l…

    JavaScript 2023年4月18日
    00
  • Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    JQuery是一种JavaScript库,其中包括了许多有用的工具方法,其中包括四种数据请求方法:$.get(), $.post(), $.ajax(), $.getJSON()。以下是它们的详细讲解: $.get(url, data, success, dataType) url:请求的URL地址 data:发送给服务器的数据(可以省略) success:…

    JavaScript 2023年5月19日
    00
  • 微信小程序页面导航介绍及使用详解

    微信小程序页面导航介绍及使用详解 在微信小程序中,页面导航是非常重要的功能。通过页面导航,用户可以在不同页面中跳转,从而实现小程序各种功能。 常用导航组件 在小程序中,常用的导航组件有 navigator 和 tabbar。其中 navigator 组件用于页面间的跳转,tabbar 组件则用于底部导航栏。 navigator 组件 navigator 组件…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部