比较简单的一个符合web标准的JS调用flash方法

yizhihongxing

实现将JS调用Flash的方法,通常使用的是Flash提供的ExternalInterface类,以下是实现方法:

1. 在Flash中定义需要调用的方法

首先在Flash ActionScript代码中定义需要被调用的方法,可以在你的Flash项目中新建一个Symbol(如code),在新建的Symbol中将需要的函数注册到ExternalInterface类中:

// 定义hello函数
public function hello():void {
    // do something ...
}

// 在构造函数中注册该函数到ExternalInterface
public function Code() {
    ExternalInterface.addCallback("hello", hello);
}

2. 在HTML页面中嵌入Flash对象,并提供JavaScript接口

在HTML页面中嵌入Flash对象时,需要注意以下几点:

  1. 构造object或embed标签时,需要指定allowScriptAccess属性值为"always"。
  2. 准确指定flash的宽度和高度。
  3. 给object或embed标签加上id和name属性,以方便在之后的JavaScript调用中使用。

代码示例如下:

<!-- HTML代码 -->
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 
        id="flashContent" 
        name="flashContent"
        width="100%" 
        height="100%" 
        codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
    <param name="movie" value="your-path/your-flash-file.swf" />
    <param name="quality" value="high" />
    <param name="bgcolor" value="#ffffff" />
    <param name="allowScriptAccess" value="always" />
    <embed src="your-path/your-flash-file.swf" 
            width="100%" 
            height="100%" 
            quality="high"
            allowScriptAccess="always"
            type="application/x-shockwave-flash" 
            pluginspage="http://www.adobe.com/go/getflashplayer" 
            name="flashContent" 
            id="flashContent">
    </embed>
</object>

<!-- JavaScript代码 -->
<script type="text/javascript">

var flashObject = document.getElementById("flashContent");
function callFlashFunction(functionName, args) {
    if (flashObject && typeof functionName === "string") {
        if (args && !(args instanceof Array)) {
            args = [args]; // 若args不是数组,则转换为数组
        }
        return flashObject[functionName].apply(flashObject, args);
    }
}

</script>

3. 在JavaScript中调用Flash中的方法

在JavaScript中,用callFlashFunction方法调用Flash对象中的方法。例如在上面定义的hello方法中,我们可以这样调用:

callFlashFunction("hello");

这样就可以在JavaScript中调用到Flash中定义的hello方法。另外,还可以传递参数到Flash中,代码如下:

// 在Flash ActionScript中定义带参数的函数
public function sayHello(name:String):void {
    trace("Hello, " + name + " !");
}

// 在JavaScript中调用带参数的函数
callFlashFunction("sayHello", "John");

这样,就可以在JavaScript中通过调用Flash对象中的方法来执行一些Flash中的功能了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:比较简单的一个符合web标准的JS调用flash方法 - Python技术站

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

相关文章

  • Javascript闭包使用场景原理详细

    Javascript闭包是一种有趣且强大的特性,它可以允许您在Javascript中创建私有变量、模拟类等操作。下面我们来详细讲解Javascript闭包的使用场景原理: 什么是Javascript闭包 Javascript闭包是指在一个函数内定义的函数可以访问外部函数的变量。具体来说,内部函数可以访问外部函数的参数、变量、函数或对象,即使外部函数已经返回了…

    JavaScript 2023年6月10日
    00
  • JavaScript正则表达式函数总结(常用)

    JavaScript正则表达式函数总结(常用) 正则表达式是用于处理字符串的强大工具,JavaScript内置了正则表达式对象RegExp,使用正则表达式可以快速而灵活地解析、匹配和替换字符串。 常用正则表达式函数 test() test()方法用于测试一个字符串是否匹配某个正则表达式,返回值为布尔类型,如果匹配成功,则返回true,否则返回false。 l…

    JavaScript 2023年5月27日
    00
  • JavaScript初级教程(第四课)

    当你开始学习JavaScript时,最好的方法之一是掌握基本数据类型和变量的概念。在第四课中,我们将介绍以下内容:变量,变量命名,变量声明,变量赋值以及基本数据类型。下面是课程的详细攻略: 变量 变量是存储数据的容器。JavaScript中的变量可以容纳不同类型的数据,例如数字,字符串和布尔值等。 变量命名 在JavaScript中,变量的名称需要遵循一些规…

    JavaScript 2023年5月18日
    00
  • JS实现继承的几种常用方式示例

    下面是详细的“JS实现继承的几种常用方式示例”的完整攻略。 什么是继承 继承是一种代码复用的技术,它使得子类获得父类的属性和方法。在 JavaScript 中,实现继承有多种方式,本文将介绍几种常用的方式。 实现继承的几种常用方式 原型链继承 原型链继承是通过设置子类的原型对象指向父类的实例对象实现的。这样就可以使子类继承父类的属性和方法。当在子类实例中查找…

    JavaScript 2023年5月28日
    00
  • 详解JS中你不知道的各种循环测速

    详解JS中你不知道的各种循环测速 前言 在 JavaScript 中,循环是最常用的控制结构之一。不同类型的循环可能具有不同的性能,有时甚至会对程序的性能产生重大的影响。本文将介绍 JavaScript 中常见的各种循环类型,并通过实例演示其性能差异。 常见循环类型 for 循环 for 循环是 JavaScript 中最常见、最基本也是最容易理解的循环类型…

    JavaScript 2023年5月28日
    00
  • JS基于贪心算法解决背包问题示例

    JS基于贪心算法解决背包问题示例 什么是贪心算法 贪心算法是一种直接寻求局部最优解以达到全局最优的算法,即采取贪心策略,每次做出当时看来最好的选择,不考虑将来的结果,也不进行回溯,只关心眼前的选择会不会对当前局面产生最优的影响。贪心算法的特点是简单、高效、易于证明正确性,并且常用于求解组合优化问题,如背包问题、最小生成树问题、哈夫曼编码等。 背包问题 背包问…

    JavaScript 2023年5月28日
    00
  • JS幻想 读取二进制文件第2/2页

    浏览器中读取二进制文件需要使用 FileReader 和 Blob 对象。下面介绍一下具体的操作步骤。 步骤一:获取文件 通过文件选择器或者其他方式获取二进制文件的实例。可以使用 <input> 标签加上 accept 属性来实现文件选择器。 <input type="file" accept=".bin&qu…

    JavaScript 2023年5月27日
    00
  • win2003下杀任何进程的命令(taskkill,ntsd)

    在Win2003系统下,有两个命令能够杀死进程,分别是taskkill和ntsd。 使用taskkill命令 命令格式 taskkill [/S system [/U username [/P [password]]]] {[/FI filter] [/PID processid | /IM imagename]} [/T] [/F] 参数说明 /S sys…

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