求助! 那位老兄有 Javascript 和 flash之间通信 的例子,请求提供!!!

seamaner 2004-11-25 05:44:01
求助! 那位老兄有 Javascript 和 flash之间通信 的例子,请求提供!!!

我也在网上找过,但都是例子太少了,
...全文
189 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
张海霖 2005-02-18
  • 打赏
  • 举报
回复
我也想知道
javascript->flash
只能用
oFlash.SetVariable("myVar", sendText);吗
seeu1688 2004-11-26
  • 打赏
  • 举报
回复
第二部分 Javascript => Flash

由页面上Flash外部的Javascript代码控制Flash内部的变量和对象属性。

html:

<HTML>
<HEAD>
<TITLE>javascript_to_flash</TITLE>
</HEAD>
<SCRIPT LANGUAGE=JavaScript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
function doPassVar(args){
var oFlash = InternetExplorer ? window.myFlash : window.document.myFlash;
var sendText = args.value;
oFlash.SetVariable("myVar", sendText);
}
//-->
</SCRIPT>
<BODY bgcolor="#FFFFFF">
<p><b><font face="Geneva, Arial, Helvetica">Example of JavaScript-to-Flash communication</font></b>
</p>
<p><font face="Geneva, Arial, Helvetica">Enter some text in the HTML form field
below and then click outside the field, or hit the Tab key, to send the text
to the Flash movie below:</font></p>
<form name="form1" onSubmit="doPassVar(sendText);return false;" action="#">
<input type="text" name="sendText" maxlength="45" onChange="doPassVar(this);">
</form>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
width=400 height=180 id="myFlash">
<param name=movie value="javascript_to_flash.swf">
<param name=quality value=high>
<embed src="javascript_to_flash.swf" quality=high width=400 height=180 type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" name="myFlash" swLiveConnect="true">
</embed>
</object></p>
</BODY>
</HTML>

javascript_to_flash.swf内部有一个动态输入框(变量myVar)
xdspower 2004-11-26
  • 打赏
  • 举报
回复
应该在Flash的联机帮助中有具体的介绍吧。而且也应该有实例的。
seeu1688(kangel) 提到的“不知道为何源于Mozilla的Firefox不能使用Mozilla的通信机制实现交互。同样的Opera也无效。” 我想是不是基于安全考虑?!

seeu1688 2004-11-25
  • 打赏
  • 举报
回复
第一部分:flash => javascript

由flash内部事件触发外部页面函数

html:
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html; charset=ISO-8859-1">
<TITLE>flash_to_javascript</TITLE>
</HEAD>
<BODY>

<SCRIPT LANGUAGE=JavaScript>
<!--
function myFlash_DoFSCommand(command, args)
{
alert (args);
}
if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&
navigator.userAgent.indexOf("Windows") != -1) {
document.write('<SCRIPT LANGUAGE=VBScript\> \n');
document.write('on error resume next \n');
document.write('Sub myFlash_FSCommand(ByVal command, ByVal args)\n');
document.write(' call myFlash_DoFSCommand(command, args)\n');
document.write('end sub\n');
document.write('</SCRIPT\> \n');
}
//-->
</SCRIPT>

<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"
WIDTH="400" HEIGHT="180" id="myFlash">
<PARAM NAME=movie VALUE="flash_to_javascript.swf"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#CCCCCC>
<EMBED src="flash_to_javascript.swf" quality=high bgcolor=#CCCCCC WIDTH="400" HEIGHT="180" NAME="myFlash" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>
</OBJECT>
</BODY>
</HTML>

flash_to_javascript.swf:
内部有一个输入文本框(变量inputVar),和一个触发按钮,按钮事件为:

on (release) {
fscommand ("send_var", inputVar);
}

flash与javascript通信有两种机制:IE的ActiveX和Netscape(Mozilla)的Plugin机制

前者通过VBScript函数来捕捉Flash内部抛出的fscommand命令
注意函数名格式是固定的: ObjectID_FSCommand

sub myFlash_FSCommand(ByVal command, ByVal args)
call myFlash_DoFSCommand(command, args)
end sub

后者通过Javascript函数实现捕捉.
注意函数名格式是固定的: EmbedName_DoFSCommand
function myFlash_DoFSCommand(command, args)
{
alert (args);
}

备注:
不知道为何源于Mozilla的Firefox不能使用Mozilla的通信机制实现交互。同样的Opera也无效。
cpio 2004-11-25
  • 打赏
  • 举报
回复
Flash控件有FSCommand事件

Flash里面fscommand ("事件产生");

另外,好像还有Status吧

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧