网路上有文章说Flash可以直接调用JSP或者SERVLET甚至是JAVABEAN等,没有必要调用JS。
当然这只局限表现层是Flash的应用。显示现在有很多应用是用JSP和FLASH联合做表现层,JSP中包含有Flash应用程序,这种情况下Flash就有可能调用JS了。比方说现在有一个Flash地图,当选择一个省份的时候,需要在JSP中将该省的相关信息显示出来,整个过程是一个异步请求的过程。那么就需要在Flash中调用JS发送异步请求到服务器端,然后将结果返回显示在JSP上。
AS中通过按钮向HTML中发送一条信息。命令名称为“show”,目的是在HTML中alert出“http://www.163.com”的值。
发布该flash应用。
文件--发布设置--选择“HTML”选项卡--模板的下拉中选择“带有FSCOMMAND的FLASH”--点击“发布”
这是FLASH生成的一个JS函数,用来接收FLASH应用中的所有command。
当然这只局限表现层是Flash的应用。显示现在有很多应用是用JSP和FLASH联合做表现层,JSP中包含有Flash应用程序,这种情况下Flash就有可能调用JS了。比方说现在有一个Flash地图,当选择一个省份的时候,需要在JSP中将该省的相关信息显示出来,整个过程是一个异步请求的过程。那么就需要在Flash中调用JS发送异步请求到服务器端,然后将结果返回显示在JSP上。
回到主题,Flash中可以用fscommand来完成这部分功能。fscommand
(command:String, parameters:String) : Void
第一个参数是命令,第二个参数则是参数值。
在Flash中发送一组命令到HTML中,然后JS中根据command的值来匹配相关部分的动作。
AS示例:
java 代码
- this.my_btn.onRelease = function ()
- {
- fscommand("show","http://www.163.com");
- }
发布该flash应用。
文件--发布设置--选择“HTML”选项卡--模板的下拉中选择“带有FSCOMMAND的FLASH”--点击“发布”
在同级目录中产生一个同名的HTML文档。查看源文件相关部分改为
js 代码
- function aa_DoFSCommand(command, args) {
- var aaObj = isInternetExplorer ? document.all.aa : document.aa;
- if (command == "show")
- {
- alert(args);
- }
- }
函数名
aa_DoFSCommand中aa是flash应用的名称,即aa.fla
当AS中
my_btn点击后会发送
show命令过来,然后执行
alert("
http://www.163.com
");
当然一个FLASH应用可以发送很多command过来,逐个匹配执行。