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日

相关文章

  • JavaScript中的事件循环方式

    JavaScript中的事件循环方式是Web开发中非常重要的一个概念。它决定了JavaScript的执行顺序,是理解异步编程和Promise的重要起点。在本文中,我将逐步介绍JavaScript的事件循环机制。 什么是事件循环 事件循环指的是JavaScript引擎在空闲时,从消息队列中取出一条消息进行处理的过程。在JavaScript中,事件可以是异步操作…

    JavaScript 2023年5月28日
    00
  • JS前端广告拦截实现原理解析

    让我详细解释一下“JS前端广告拦截实现原理解析”的完整攻略。 什么是JS前端广告拦截? JS前端广告拦截是一种方法,可以通过JavaScript代码模拟用户操作,从而屏蔽网站中的广告内容。 通过JS前端广告拦截,我们可以将网站中的广告屏蔽掉,提高用户体验,加快页面加载速度。 实现原理解析 下面是JS前端广告拦截的实现原理: 使用DOM查找要屏蔽广告的元素 通…

    JavaScript 2023年6月11日
    00
  • javascript中定义类的方法汇总

    下面就来为大家详细讲解“JavaScript中定义类的方法汇总”。 一、使用函数定义类 在 JavaScript 中最基本的定义类的方式就是使用函数。函数内部使用 this 关键字绑定属性和方法,最终返回该函数本身,从而构成一个类。 function Person(name, age) { this.name = name; this.age = age; …

    JavaScript 2023年5月27日
    00
  • 移动端js触摸事件详解

    移动端JS触摸事件是专门针对移动端开发的触摸操作API,它能够捕获触摸屏幕的动作,比如点击、滑动、拖动、缩放等,并能够根据开发者的需求进行多样化的响应操作。本文将详细讲解移动端JS触摸事件的使用方法和应用技巧,方便开发者在移动端开发中进行快速应用。 一、移动端JS触摸事件类型 移动端JS触摸事件类型主要包括:touchstart、touchmove、touc…

    JavaScript 2023年6月10日
    00
  • JavaScript比较两个对象是否相等的方法

    如何比较两个JavaScript对象是否相等是一个相对复杂的问题。JavaScript提供了几种方法来比较两个对象,但每种方法都有自己的限制和局限性。这里将介绍其中三种最常用的方法来比较对象是否相等。 1. 使用JSON.stringify()方法 JSON.stringify()方法是将一个JavaScript对象转换为一个JSON字符串的方法。我们可以使…

    JavaScript 2023年5月27日
    00
  • javascript 验证日期的函数

    我们来详细讲解一下如何利用 JavaScript 编写验证日期的函数。 函数基本结构 一个基本的 JavaScript 验证日期的函数应该具有以下结构: function validateDate(input){ // 对传入的参数 input 进行验证 // 如果符合日期格式,则返回 true,否则返回 false return true; // 或者 f…

    JavaScript 2023年5月27日
    00
  • JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码

    获取本月第几周、本月共几周、本月有多少天 首先,我们可以使用Date对象来获取当天的日期。通过获取当前日期的月份和年份,可以计算出本月有多少天。同时,我们可以使用getDay()方法来获取当前日期是星期几,然后在计算出本月的第几周以及本月共几周。 下面是获取本月第几周、本月共几周和本月有多少天的示例代码: // 获取当前日期 const date = new…

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

    以下是关于JavaScript Date对象的toDateString()方法的完整攻略,包括两个示例说明。 JavaScript Date对象的toDateString()方法 JavaScript的toDateString()方法返回一个表示对象日期部分的字符串,该字符串格式为英文的星期几、英文的月份、日期和年份。 下面是使用对象的toDateStrin…

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