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日

相关文章

  • Backbone前端框架核心及源码解析

    Backbone前端框架核心及源码解析 Backbone是一款前端框架,它的核心是提供了MVC架构中Model(模型)和Collection(集合),以及View(视图)和Router(路由)的基础实现。Backbone的源码易读易懂,阅读源码可以对JavaScript编程有更深刻的理解。 1. Model和Collection Model Model表示前…

    JavaScript 2023年6月11日
    00
  • 一文详解JavaScript闭包典型应用

    一、JavaScript闭包基础概念 闭包指的是函数内部能够访问其外部作用域的一种机制。简单来说,闭包就是一个函数引用了其包含作用域中的变量(即使在该函数外部调用时也能够访问这些变量)。通常,一个函数执行完毕后,其内部变量将会释放,但如果该函数内部存在闭包,则这些变量仍然会被保存。 二、闭包的经典应用 实现函数记忆 函数记忆是一种用来缓存函数结果的技术。它可…

    JavaScript 2023年6月10日
    00
  • JavaScript对象(详细)

    关于JavaScript对象,我可以提供以下完整攻略: JavaScript对象详解 在JavaScript中,对象是一种非常重要的数据类型。对象可以用来表示一组相关的数据和功能,并且可以被多次引用和修改。本文将详细介绍JavaScript对象的概念、创建、属性、方法和原型。 概述 什么是对象? 在JavaScript中,对象是一种复合数据类型,它可以表示一…

    JavaScript 2023年5月17日
    00
  • Javascript array类 数组操作方法

    JavaScript 的 Array 类是经常被使用的一种数据类型,用于存储有序且可变长度的数据。为了更好的操作数组,JavaScript 提供了丰富的数组操作 API,包含创建、增加、删除、遍历和排序等方法。本文将介绍 JavaScript 的 Array 类的常用操作方法及其使用方法,内容如下: 创建数组 语法 new Array(); // 空数组 n…

    JavaScript 2023年6月10日
    00
  • JavaScript 语句之常用 for 循环详解

    JavaScript 语句之常用 for 循环详解 for 循环是 JavaScript 中最基本的循环结构之一,它可以让我们重复执行一个代码块多次,非常的灵活、简单易懂。在本文中,我们将详细讲解 for 循环的语法、用法以及示例说明。 for 循环的语法 for 循环的语法如下: for (初始化表达式; 条件表达式; 循环后操作表达式) { // 循环代…

    JavaScript 2023年5月28日
    00
  • 举例讲解JavaScript substring()的使用方法

    下面我将为你详细讲解“举例讲解JavaScript substring()的使用方法”的完整攻略,包含以下内容: substring()方法的概述 substring()方法的语法 substring()方法的参数 substring()方法的返回值 substring()方法的示例说明 总结 1. substring()方法的概述 substring()是…

    JavaScript 2023年5月28日
    00
  • asp.net不同页面间数据传递的多种方法

    ASP.NET是一种强大的Web应用程序框架,提供了多种方法来传递不同页面间的数据。下面从多种角度介绍ASP.NET不同页面间数据传递的多种方法: QueryString QueryString是将数据以键值对的形式追加在URL后面,通常用于将简单的数据传递给ASP.NET页面。可采用以下代码将数据传递给页面: <a href="Defaul…

    JavaScript 2023年6月11日
    00
  • JavaScript中模拟实现jsonp

    JavaScript中模拟实现jsonp,需要遵循以下步骤: 1. 创建一个script标签 在DOM中创建一个script标签,并设置其src属性为需要跨域请求的URL,同时还需要设置一个callback参数,作为后端接口返回数据的回调函数名。 const script = document.createElement(‘script’); script.…

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