flash调用js中的方法,让js传递变量给flash的办法及思路

实现Flash调用JS方法并接收JS传递的变量有以下两种常见做法:

一、使用 ExternalInterface

作为一个Flash插件的开发者,可以使用 ExternalInterface 达到让 Flash 调用 JavaScript,让 JavaScript 调用 Flash 之间互相交互的目的。

以下是一个示例说明:

  1. Flash定义和带入数据

Flash原本就可以通过以下函数,向JavaScript传递消息:

ExternalInterface.call("函数名", "参数");

我们可以使用这个函数来向JS传递变量。例如,下面的代码演示如何定义一个字符串,然后将其传递给JS函数showMessage

//在Flash中
import flash.external.ExternalInterface;
var myMessage:String = "Hello World!";
ExternalInterface.call("showMessage", myMessage);

//在HTML中
<script>
function showMessage(message){
    alert("收到Flash的消息: " + message);
}
</script>
  1. JavaScript调用Flash函数并传参

JS调用Flash函数同样可以用 ExternalInterface 函数来实现。在Flash中,需要进行如下的操作:

if (ExternalInterface.available) {
    ExternalInterface.addCallback("JavaScript中注册的函数名", this, flashFunc);
}

这个函数的执行过程是:执行完这个操作后,现在 JavaScript 在调用 JavaScript中注册的函数名() 的时候就可以调用我们注册的函数了(在下面的示例代码中,这个注册的函数就是 test() 了)

//在Flash中
import flash.external.ExternalInterface;
if (ExternalInterface.available) {
    ExternalInterface.addCallback("test", this, flashFunc);
}
function flashFunc(arg:String):void
{
    //处理接收到的参数
    trace("JS传给了Flash的参数:"+arg);
}

//在HTML中
//调用Flash函数,给Flash传参
<script>
function callFlashTest(){
    var myFlash = document.getElementById("myFlashObj");
    myFlash.test("Hello Flash!");
}
</script>

二、使用 SWFObject

此方法使用SWFObject加载Flash,可以直接在JavaScript中调用Flash中的函数,并且可以传递变量。

示例代码如下:

  1. Flash定义并带入参数

在Flash中必须通过AS定义Function,即让我们在Flash中定一个函数可以被JS调用:

//在Flash中
import flash.external.ExternalInterface;
function FlashFunc(arg:String):void
{
    trace("JS传给了Flash的参数:"+arg);
}

//让JS可以通过JS传递一个参数调用Flash中的函数FlashFunc
if (ExternalInterface.available) {
    ExternalInterface.addCallback("FlashFunc", null, FlashFunc);
}

//Flash中同时调用JS的方法,向JS传递参数
if (ExternalInterface.available) {
    ExternalInterface.call("JavaScriptFunc", "Flash中的参数");
}
  1. 在HTML中调用函数并传入参数
<script src="https://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
<script>
function JavaScriptFunc(arg) {
    alert("Flash传过来的参数:" + arg);
}
var flashvars = {
    param1:"value1",
    param2:"value2"
};
var params = {
    menu: "false"
};
var attributes = {
    id:"flashContent"
};
swfobject.embedSWF("myFlash.swf", "flashContent", "300", "120", "10.0.0", "expressInstall.swf", flashvars, params, attributes);
</script>

在上述代码中,我们可以看到,通过 swfobject.embedSWF() 代码,我们在 HTML 中进行了 Flash 的加载,并对其进行了配置。最后一步就是让 Flash 调用我们在 JavaScript 中定义的 JavaScriptFunc 函数,同时将参数"Flash中的参数"通过ExternalInterface传递给 JavaScriptFunc 函数。

使用 ExternalInterface 或 SWFObject,开发者就可以非常方便地在 Flash 和 JavaScript之间进行传递变量或调用函数了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:flash调用js中的方法,让js传递变量给flash的办法及思路 - Python技术站

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

相关文章

  • JS散列表碰撞处理、开链法、HashTable散列示例

    JS散列表碰撞处理是指在散列表中插入元素时,如果发现插入位置已经有元素,就会出现碰撞的情况。碰撞处理的目标是保持散列表中没有重复的元素。下面将介绍两种JS散列表的碰撞处理方法:开链法和线性探测法。 开链法 开链法也被称为拉链法,是一种常用的碰撞处理技术。它的基本思想是将每个散列值的链表放置在散列表的对应位置上,如果插入时与该链表中的某个元素发生碰撞,就将新元…

    JavaScript 2023年5月28日
    00
  • js 函数的执行环境和作用域链的深入解析

    JS 函数的执行环境和作用域链的深入解析 1. 执行环境 在 JavaScript 中,执行环境是指一段可执行代码的运行环境,有全局执行环境和函数执行环境两种。 全局执行环境 全局执行环境是在浏览器中直接打开网页时就会创建的执行环境,它是最顶层的环境。全局执行环境中定义的变量和函数被称为全局变量和全局函数,它们可以在程序的任何地方被访问和修改。 示例代码: …

    JavaScript 2023年6月10日
    00
  • 使用JavaScript动态设置样式实现代码及演示动画

    使用JavaScript动态设置样式可以让我们实现更加灵活的页面样式效果,具体步骤如下: 选取元素 首先,我们需要选取需要设置样式的元素,可以使用document.querySelector、document.querySelectorAll等DOM方法来选取元素。例如: const element = document.querySelector(‘.bo…

    JavaScript 2023年6月10日
    00
  • 用 Javascript 验证表单(form)中的单选(radio)值

    下面是用 JavaScript 验证表单中的单选(radio)值的完整攻略: 1. 获取单选按钮的值 首先,我们需要通过 document.getElementsByName() 方法获取所有同名的单选按钮,然后循环遍历每个单选按钮,判断哪个单选按钮被选中(即 checked 属性为 true)。 下面是一个获取选中的单选按钮值的示例代码: // 获取所有同…

    JavaScript 2023年6月10日
    00
  • Javascript toPrecision 方法

    JavaScript 中的 toPrecision() 方法用于将数字转换为指定精度的字符串。该方法返回一个字符串,其中包含指定精度的数字,可以指定有效数字的位数。在本教程中,我们将详细介绍 toPrecision() 方法的使用方法。 toPrecision() 方法的基本语法如下: number.toPrecision(precision) 其中,num…

    JavaScript 2023年5月11日
    00
  • JavaScript Object.defineProperty与proxy代理模式的使用详细分析

    针对这个主题,我可以提供如下的详细讲解攻略: JavaScript Object.defineProperty与proxy代理模式的使用详细分析 1. JavaScript Object.defineProperty 1.1 概述 JavaScript中的Object.defineProperty方法可以用于精确地对属性进行定义和控制,是一个非常强大的工具。…

    JavaScript 2023年5月27日
    00
  • 微信小程序 Animation实现图片旋转动画示例

    请看下面的详细讲解。 Animation实现图片旋转动画示例——完整攻略 1. Animation是什么? Animation是微信小程序的动画库,其中包含了动画的创建、操作和控制等多种函数,可以实现各种炫酷的动画效果。 2. 如何创建Animation对象? 我们可以使用wx.createAnimation()函数来创建一个Animation对象。下面是这…

    JavaScript 2023年6月11日
    00
  • javascript判断机器是否联网的2种方法

    让我来为您提供关于”Javascript判断机器是否联网的2种方法”的详细攻略。 方法一:使用navigator.onLine属性 使用navigator.onLine属性是JavaScript判断机器是否联网的最简单方法之一。该属性是一个布尔值,指示设备是否联网。 以下是使用navigator.onLine的示例代码: if (navigator.onLi…

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