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

yizhihongxing

实现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正则截取两个字符串之间及字符串前后内容的方法

    让我来为您详细讲解“JS正则截取两个字符串之间及字符串前后内容的方法”的完整攻略。 正则截取两个字符串之间 如果您需要截取两个字符串中间的内容,可以使用正则表达式来完成。使用正则表达式的match方法,可以传入一个正则表达式,返回匹配到的字符串数组。 示例: const str = ‘hello world, my name is Jack’; const …

    JavaScript 2023年5月28日
    00
  • HTA版JSMin(省略修饰语若干)基于javascript语言编写

    HTA版JSMin 基于javascript语言编写的完整攻略 什么是HTA版JSMin HTA版JSMin是一个基于javascript语言编写的代码压缩工具,可以将javascript代码文件进行压缩和精简,从而减少代码文件的大小,加速加载速度。 如何使用HTA版JSMin 下载HTA版JSMin的压缩包并解压缩:https://github.com/d…

    JavaScript 2023年5月19日
    00
  • JavaScript中isPrototypeOf函数

    下面是完整的JavaScript中isPrototypeOf函数的攻略: 标题 isPrototypeOf函数概述 isPrototypeOf() 是 JavaScript 中 Object 类型内置的函数之一。它用于判断一个对象是否是另一个对象的原型。原型链是 JavaScript 对象的核心概念之一,因此 isPrototypeOf() 函数通常被用于判…

    JavaScript 2023年5月28日
    00
  • JavaScript调试之console.log调试的一个小技巧分享

    JavaScript调试之console.log调试的一个小技巧分享 简介 在使用JavaScript进行开发时,很难避免遇到诸如变量不生效、逻辑错误等问题,为了解决这些问题,我们需要使用调试工具来帮助我们找到问题的根源。其中一个最常使用的调试方式是使用console.log()函数进行打印输出,输出变量的值、函数的执行结果等。这篇文章将会介绍一个小技巧,帮…

    JavaScript 2023年6月11日
    00
  • 微信小程序 参数传递详解

    微信小程序参数传递详解 在微信小程序中,参数传递是非常常见的操作。例如,在不同页面之间传递数据,或者从API获取数据后通过参数传递渲染到当前页面中。本文将详细讲解微信小程序中常用的参数传递方式,以及它们的使用方法和适用场景。 Query参数 Query参数是指通过URL传递的参数。在微信小程序中,可以使用wx.navigateTo方法跳转到其他页面,并且可以…

    JavaScript 2023年6月11日
    00
  • Element Input输入框的使用方法

    Element Input输入框的使用方法 Element是一款基于Vue.js的UI框架,其中的Input组件可以用来创建表单输入框。本文将详细介绍Element Input输入框的使用方法,让您可以轻松使用该组件来创建表单。 安装 使用Element Input输入框,您需要先引入Element UI: <link rel="styles…

    JavaScript 2023年6月10日
    00
  • 15分钟深入了解JS继承分类、原理与用法

    下面是关于“15分钟深入了解JS继承分类、原理与用法”的完整攻略。 一、JS继承分类 JS继承可以分为以下几种类型: 原型链继承 借用构造函数继承 组合继承 原型式继承 寄生式继承 寄生组合式继承 二、JS继承原理 JS中的继承是基于原型的,每个对象都有__proto__属性,该属性指向对象的原型对象,原型对象又有__proto__属性,依次形成了一个原型链…

    JavaScript 2023年5月28日
    00
  • 详解前端安全之JavaScript防http劫持与XSS

    首先,需要明确的是前端安全是一个非常重要的主题。在网络环境日趋复杂的今天,安全问题已经不再是一个简单的概念,而是涉及到许多方面,包括网络攻击、数据泄露、信息窃取等。因此,在开发网站时,需要重视前端安全,采取相应的措施,以保障网站和用户的安全。 其中一项非常重要的前端安全技术就是防止http劫持和XSS攻击。http劫持指的是黑客通过某些手段,劫持用户的请求,…

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