惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
Martin Fowler
Martin Fowler
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
博客园_首页
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
Blog — PlanetScale
Blog — PlanetScale
T
The Blog of Author Tim Ferriss
雷峰网
雷峰网
D
Docker
博客园 - 司徒正美
S
SegmentFault 最新的问题
M
MIT News - Artificial intelligence
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
U
Unit 42
J
Java Code Geeks
A
About on SuperTechFans
N
Netflix TechBlog - Medium
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Security Affairs
I
Intezer
Cisco Talos Blog
Cisco Talos Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
B
Blog RSS Feed
P
Privacy & Cybersecurity Law Blog
T
Tenable Blog
T
Threatpost
H
Hacker News: Front Page
G
Google Developers Blog
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
L
Lohrmann on Cybersecurity
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
A
Arctic Wolf
S
Secure Thoughts
GbyAI
GbyAI
NISL@THU
NISL@THU
S
Security @ Cisco Blogs
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Webroot Blog
Webroot Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
O
OpenAI News
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - trace

flash8与javascript集成 ASP.NET 2.0母版页(MasterPage) “核弹”击中晚期直肠癌 驳图王:轻轻一招,获取上万IP SEO技巧一 很实用的缓动函数 [原创]flash动态改变注册点解决方案 flash+webservice 乱码问题解决一例(原创) 为flash构建asp.net Webservice flash 与 webservice 通信的两种方式 Flash 与 Web Service 技术的完美结 FLASH与WebService Flash 与 Web Service 技术的完美结合 Flash常用代码的介绍 flash to js flash 与 后台语言通讯 flash与js通讯(2) 用Javascript实现鼠标拖拽网页表单 (二) 用Javascript实现鼠标拖拽网页表单(一)
flash to js 使用工具包
trace · 2007-07-16 · via 博客园 - trace

下载地址http://weblogs.macromedia.com/flashjavascript/downloads/FlashJavascriptGateway.zip 
使用此 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下的循环引用都可能引起死循环。换句话说,如果对象属性是指向其自身的一个引用,连载的代码将拼命地无限循环下去。