`

flash to js 使用工具包及示例,提供 js 和 flash 之间的通讯

阅读更多
下载地址:[url]http://weblogs.macromedia.com/flashjavascript/downloads/FlashJavascriptGateway.zip [/url]
使用此 JavaScript 与 Flash 整合工具包, JavaScript能够调用ActionScript函数(反之亦可),Flash和Html开发者能够借此进行更好的开发。可以在两种环境下相互通信主要数据类型包括:
- objects
- arrays
- strings
- numbers
- dates
- booleans
- nulls
- undefined

另外,此 JavaScript 与 Flash 整合工具包 能够正常工作于所有主要的浏览器与平台之上(详细内容请参见后面的“系统要求”)。
在以下位置可以找到相关的最新信息和最新版本:
http://www.macromedia.com/go/flashjavascript
本项目由Macromedia公司的 Christian Cantrell 和 Mike Chambers 开发编写。
******

安装
******
安装  JavaScript 与 Flash 整合工具包 非常简易。只需要将文件 JavaScriptFlashGateway.js 和JavaScriptFlashGateway.swf 从 installation 文件夹复制到网站目录下。放在哪里都可以,但建议将它放在多个项目均可使用的位置。
此工具包Flash方部分的安装要求将 source/flash/actionscript 下的库文件复制到您机器上的 Flash 或者 Flex 的类路径下(译者注:比如D:\Macromedia\Flash MX 2004\zh_cn\First Run\Classes\):
com/macromedia/javascript/JavaScriptProxy.as
com/macromedia/javascript/JavaScriptSerializer.as

复制文件时请确保维持以上目录结构不变。
****

使用
****
-从 JavaScript 调用 ActionScript 函数-
要从 JavaScript 调用 ActionScript 函数,请确定网页文件中已链接文件 JavaScriptFlashGateway.js ,代码如下:
<script type="text/javascript" src="/path/to/JavaScriptFlashGateway.js"></script>

文件 JavaScriptFlashGateway.js 中包含了一个名为 FlashProxy(Flash代理) 的类,负责代理Flash和JavaScript之间的函数互调。FlashProxy 和在其中调用函数的Flash影片必须使用同一个 唯一标识(ID),以便让FlashProxy知道调用的函数位于网页上的哪个Flash影片上。创建唯一ID的最简单方法是使用时间戳。要创建唯一ID,可以网页面中插入这样的脚本标签:
var uid = new Date().getTime();
然后,创建一个FlashProxy的JavaScript类的实体,并传入刚刚创建的唯一ID以及文件 JavaScriptFlashGateway.swf  的路径,比如像这样:
var flashProxy = new FlashProxy(uid, '/path/to/JavaScriptFlashGateway.swf');将Flash内容加入到网页中去的时候,也要用Flash变量将相同的唯一ID传入,文件 JavaScriptFlashGateway.js 中含有一个生成Flash标签及加入所需变量的简单方法,像这样:
<script type="text/javascript">
    var tag = new FlashTag('/path/to/flashContent.swf', 300, 300); // 最后两个参数是高和宽
    tag.setFlashvars('lcId='+uid);
    tag.write(document);
</script>

唯一ID通过Flash变量 lcId 被传入到Flash影片中去。现在你已经可以使用FlashProxy的实例从JavaScript调用ActionScript的函数了,像这样:
flashProxy.call('myActionScriptFunction', 'my string', 123, true, new Date(), null);

以上代码中,第一个参数是你要调用的ActionScript函数名,而其余作为调用函数的参数传入的参数必须是Flash支持的数据类型objects, arrays, strings, dates, numbers, booleans, nulls, 和 undefined 之一。
-在JavaScript中响应Flash的函数调用-
无需对JavaScript代码作特殊处理即可在Flash里响应函数调用

只要页面中包含了文件 JavaScriptFlashGateway.js ,使用如下所述的技术,Flash就能够以任意数目的参数调用JavaScript函数。
-从ActionScript调用JavaScript的函数-
请再次确认含有要调用JavaScript函数的HTML页中已链接了文件 JavaScriptFlashGateway.js。
将JavaScriptProxy 类导入Flash项目:
import com.macromedia.javascript.JavaScriptProxy;
然后创建JavaScriptProxy 类的实例如下:
var proxy:JavaScriptProxy = new JavaScriptProxy();
调用JavaScript函数有两种方法:
1.使用调用程序接口(API),如下:
proxy.call("javaScriptMethodName", "arg1", new Object());
第一个参数是欲调用的JavaScript函数名。其余参数将作为被调用函数的参数被传入。
2.也可以使用JavaScriptProxy类的方法来直接调用,而这些方法将被作为JavaScript(由JavaScriptProxy)代为处理。比如:
proxy.javaScriptMethodName("arg1", new Object());
-在Flash里响应JavaScript的函数调用-
要用JavaScript调用Flash影片的函数,需要创建一个 JavaScriptProxy 类的实例以及定义函数被代为处理成的对象:
var proxy:JavaScriptProxy = new JavaScriptProxy(_root.lcId, this);
构造器带有两个参数。第一个参数是从HTML页中传进Flash影片中去的唯一标识。第二个是被调用函数将被代为处理成的对象或者类的实例。注意:此参数仅在Flash影片需要响应JavaScript的函数调用时才是必须的。
这就是所需的全部代码。所有JavaScript调用都将被引向构造器中参数所定义的对象。
******

系统要求
******
此JavaScript 与 Flash 整合工具包要求 6r65 以上版本的Flash播放器,并在以下浏览器中测试通过:
Windows IE 6.0
Windows Firefox 1.0
Windows Opera 8.0
Macintosh Opera 8.0
Macintosh Firefox 1.0
Safari 1.2.4 and 2.0
Linux Firefox 1.1
******

已知问题
******
1.如非被明确的定义为 undefined,JavaScript 中的未定义对象属性将不能被连载并发给Flash。如果该变量未经声明,则将被清除。
2.在调试工具环境下,JavaScript和Flash的通讯会很缓慢,但是在其他平台和浏览器包括独立播放器下,其速度不会减缓。
3.不能传递循环中的对象或数组。JavaScript和ActionScript下的循环引用都可能引起死循环。换句话说,如果对象属性是指向其自身的一个引用,连载的代码将拼命地无限循环下去。

----------
最近由于工作需要才熟悉一下 flash ,有什么好的方法希望大家可以共享一下.
分享到:
评论

相关推荐

    前端项目-videojs-flash.zip

    3. **示例和文档**:可能包含`examples`或`docs`目录,用于展示如何配置和使用Video.js的Flash功能,以及相关的API文档。 4. **配置文件和脚本**:可能有配置文件(如`.json`或`.html`),用于设置Flash的参数和...

    网页嵌入flash示例

    其次,`swfobject.js`是用于无插件嵌入Flash的JavaScript库。SwfObject是一个轻量级且灵活的解决方案,它允许开发者在不依赖特定浏览器插件的情况下,实现Flash内容的条件性加载和显示。SwfObject的工作原理是检测...

    flash和javascript统计图控件

    总的来说,"Flash和JavaScript统计图控件"是一个强大的工具集,结合了Flash的动画效果和JavaScript的交互性,以及ASP.NET的后端支持,为Web开发人员提供了丰富的数据可视化解决方案。尽管Flash的未来可能不再光明,...

    js和flash交互的小例子

    在IT领域,JavaScript(简称JS)和Adobe Flash是两种广泛使用的技术,它们分别在网页动态效果和多媒体内容呈现上有着独特的优势。本文将通过一个小例子深入讲解如何实现JS与Flash之间的交互,帮助开发者更好地理解和...

    net 最新的flash及示例

    8. **学习路径**:对于想要学习如何在.NET中使用Flash的开发者,可以先熟悉ActionScript编程,然后了解如何在.NET项目中嵌入和控制Flash对象,最后通过提供的示例逐步实践。 以上就是关于"net 最新的flash及示例"这...

    Flash和JS实现图片切换

    首先,Flash是一种曾经广泛使用的矢量图形和多媒体开发工具,能够制作出丰富的动画效果。在图片切换场景中,Flash可以利用其内置的动作脚本语言ActionScript,编写逻辑来控制图片的显示和过渡动画。ActionScript提供...

    [转]FLASH与JS序列简单应用

    标题中的“[转]FLASH与JS序列简单应用”表明这篇内容是关于如何在网页中结合使用Flash和JavaScript进行交互操作的教程。Flash是一种用于创建动态内容、动画和交互式应用程序的平台,而JavaScript则是一种广泛使用的...

    flash和JavaScript通信

    在Web开发领域,Flash和JavaScript之间的通信是一种常见技术,它允许两种不同的技术栈协同工作,增强网页的功能性和交互性。 Flash曾经是实现动态内容和多媒体交互的重要工具,而JavaScript则是浏览器端的主要脚本...

    js调用flash问题

    在JavaScript和Flash之间进行交互是Web开发中的一个经典主题,特别是在过去Flash广泛用于实现音频、视频播放和动画的时候。本文将深入探讨如何在JavaScript中调用Flash,以及在这个过程中可能遇到的问题。 首先,...

    SWFObject.js Flash性能增强插件

    SWFObject.js是一款广泛使用的JavaScript库,专门设计用于在网页中插入、管理和优化Adobe Flash内容。这个插件的出现,主要是为了解决早期Flash在网页中的集成问题,尤其是在不同浏览器和平台上的兼容性问题。通过...

    Jquery uploadify 3.0 Flash 上传 包含完整示例

    《jQuery Uploadify 3.0 Flash 上传:深入解析与实战指南》 jQuery Uploadify 是一个基于jQuery的文件上传插件,特别适用于处理大文件上传和批量上传的需求。在3.0版本中,Uploadify引入了Flash技术,使得文件上传...

    js+flash 网页幻灯片集合

    在这个"js+flash 网页幻灯片集合"中,包含的"flash"文件可能是一些使用Flash技术制作的幻灯片示例,它们展示了如何用Flash创建丰富的视觉效果。而"js"文件则可能是JavaScript代码,提供了使用纯JavaScript实现幻灯片...

    javascript_to_flash_as3.0.rar

    这个“javascript_to_flash_as3.0.rar”压缩包可能包含了一组教程、示例代码或者工具,旨在帮助开发者理解并实现这两种语言间的通信。 首先,JavaScript是一种广泛用于网页动态效果和功能实现的脚本语言,而AS3.0...

    js+flash实现焦点广告轮播

    在“源码”和“工具”的标签下,我们可以理解为这个压缩包可能包含了实现js+flash焦点广告轮播的完整代码示例和辅助工具。这可能包括: 1. **示例代码**:JavaScript文件(可能为.js)包含轮播的逻辑控制,而Flash...

    javascript与flash相互调用

    JavaScript 和 Flash 之间的相互调用是一种常见的技术,用于在网页中实现两者的深度融合。这种技术在早期网页设计中尤其流行,因为Flash提供了丰富的动画和多媒体功能,而JavaScript则擅长处理用户交互和页面逻辑。...

    flash和jschart代码及例子

    在"flash和jschart代码及例子"的压缩包中,很可能包含了使用Flash Chart和JSChart创建的一些示例代码和运行环境。PDF文档可能提供了详细的教程或者API参考,帮助开发者快速理解和使用这两种技术。例如,这些示例可能...

Global site tag (gtag.js) - Google Analytics