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日

相关文章

  • JavaScript async/await使用详解

    JavaScript async/await使用详解 什么是async/await async/await是ES2017中的语法,它使得异步的代码看起来更像同步的代码。async/await基于Promise,是Promise写法的一种简洁写法。 使用async/await async/await需要使用async定义异步函数,使用await等待异步操作完成…

    JavaScript 2023年5月28日
    00
  • Three.Js实现颜色自定义变换效果实例

    下面我将为大家详细讲解实现“Three.Js实现颜色自定义变换效果实例”的完整攻略。 概述 在 Three.js 中,可以通过修改物体的颜色属性来实现颜色的变换效果。本文将以Three.JS库为基础,介绍如何利用其实现一个简单的颜色自定义变换效果。 步骤 步骤一:引入Three.js库文件 我们需要在HTML文件中引入Three.JS库文件,如下所示: &l…

    JavaScript 2023年6月11日
    00
  • spring boot ajax跨域的两种方式

    当使用Spring Boot框架开发Web应用程序时,可以使用Ajax来进行异步请求和响应。但是在跨域请求时,会涉及到浏览器的一些限制,比如同源政策。本文内容将详细介绍使用Spring Boot如何解决Ajax跨域问题。 1. 什么是Ajax跨域问题 Ajax跨域问题指的是浏览器所遵循的同源策略,导致无法利用Ajax去向不同源的服务器发送请求。跨域请求会被浏…

    JavaScript 2023年6月11日
    00
  • JavaScript中Date对象的常用方法示例

    JavaScript中Date对象是用来表示日期和时间的对象,它对日期和时间的处理非常方便。下面是几个常用的Date对象的方法: 获取当前日期和时间 方法名称:getDate() 该方法返回日期(1-31)。 let today = new Date();   let day = today.getDate(); console.log("今天是&…

    JavaScript 2023年6月10日
    00
  • Javascript将图片的绝对路径转换为base64编码的方法

    将图片的绝对路径转换为base64编码的方法可以使用Javascript的Canvas对象来实现。具体过程如下: 步骤 1:创建一个Image对象 首先,我们需要创建一个Image对象,将想要转换成base64编码的图片作为其src属性的值。 const image = new Image(); image.src = ‘https://example.co…

    JavaScript 2023年5月19日
    00
  • JS document对象简单用法完整示例

    让我们来详细讲解“JS document对象简单用法完整示例”的攻略。文本将被分为几个部分:介绍什么是document对象、document对象的一些属性和方法、示例说明。 什么是document对象? document 对象是指代整个文档的根节点,所有的HTML元素都是文档的后代,可以通过该对象来操作 HTML 页面。 document对象的属性和方法 d…

    JavaScript 2023年5月27日
    00
  • 举例详解JavaScript中Promise的使用

    下面我将详细讲解JavaScript中Promise的使用: 什么是 Promise? Promise 是 JavaScript 中用于处理异步操作的一种方案,它可以使异步操作更加优雅地编写,避免回调地狱的问题,解决了回调函数嵌套过深的问题。 Promise 有三种状态: pending(等待中) fulfilled(已完成) rejected(已拒绝) P…

    JavaScript 2023年5月27日
    00
  • js 页面元素的几个用法总结

    下面是“js 页面元素的几个用法总结”的完整攻略。 标题 一、获取元素 在 JS 中,我们可以通过 document 对象的相应方法获取元素。其中 querySelector 和 getElementById 最为常用。 // 通过 ID 获取元素 let element = document.getElementById(‘elementId’); // …

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