频道直达 - 学院 - 下载 - 交易 - 特效 - 字库 - 手册 -排名-工具- 繁體
网页教学网站开发 设为首页
加入收藏
联系我们
建站搜索: 常用广告代码   用户注册 | 用户登陆
您当前的位置:中国建站之家 -> 网站开发工具应用教程 -> Flash教程 -> [翻译]JavaScript和Flash的通信

[翻译]JavaScript和Flash的通信

作者:未知  来源:转载  发布时间:2005-8-10 20:12:15  发布人:acx

减小字体 增大字体


[翻译]javascript和Macromedia Flash的通信示例
 原文地址: www.macromedia.com/support/flash/ts/document./java_script_comm.htm
 说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威

 下面是一些在Flash和使用javascript的HTML文件直接通信的示例,每个示例都有简略的步骤

 本文讨论了3种基本的Flash/javascript通信方式:
 > javascript 到 Flash的通信----使用Flash播放器的javascript方法
 > Flash 到 javascript的通信----使用Flash的fscommand
 > Flash 到 Flash的通信-----------使用本地连接对象或综合上2种技术

 并不是所有的浏览器都很重视脚本.为了和Flash播放器通信,浏览器必须有内置的钩子以便Flash播放器可以监听.浏览器必须是下列的几种:
 > Netscape Navigator 3.0-4.7x, 和 Netscape 6.2或更高
 (Windows 95/98/NT/2000/XP 或 MacOS; 允许Java和LiveConnect)
 >Internet Explorer 3.0 或更高
 (仅Windows 95/98/NT/2000/XP; 允许ActiveX)

 注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持这种方法.请查看本文的附加信息

 
 javascript到Flash的通信
 这个例子演示了如何使用Flash的method把变量从HTML的input text 发送到该页面中的Flash文件中.HTML input的数据通过Flash的SetVariable方法传送到Flash文件中.

 查看示例:示例 下载源文件: javascript_to_flash.zip(17k)
  [ 点击下载 ]
 http://flash8.net/upload/2004/1/12/20041122045568336.zip

 
 步骤:
 >Flash中
 1.新建一个文件,保存为javascript_to_flash.fla
 2.用文字工具在舞台上创建一个文本域
 3.选择这个文本域,在属性面板中,从下拉列表中选择动态文本(Dynamic Text),在变量(variable)栏填上"myVar"
 注意:最好的习惯是使用Instance,用myVar.text更改myVar的值.为了简单起见和兼容Flash4和Flash5,我们使用的是变量名的形式.
 4.保存文件
 5.发布HTML文件和SWF文件

 
 >Dreamweaver中
 下一步的工作转移到Dreamweaver中了,当然也可以是其他的HTML编辑器
 1.打开上一步发布的HTML文件
 2.插入生成的SWF文件和OBJECT/EMBED标签
 (1) Insert>Media>Flash,并选择这个Flash
 (2) 切换到代码视图,我们需要修改被选中的<OBJECT>和<EMBED>标签
 (3) 在OBJECT标签中,插入id="myFlash"
 <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=366 height=142 id="myFlash">

 注意:如果你是粘贴复制代码的话,确保删除不必要的换行.否则可能会引起错误; id也可以在属性面板里直接输入
 (4) 在EMBED标签中,插入name="myFlash"和swLiveConnect="true",确保没有使用id属性!代码应当是这样子的:
 <embed src="javascript_to_flash.swf" quality=high width=366 height=142type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";; name="myFlash" swLiveConnect="true"></embed> 

 3.创建表单域
 (1) 回到设计视图
 (2) 插入文本域(Insert> Form Object> Text Field),如果询问是否添加表单域,选择是
 (3) 把文本域的HTML标签修改成这样:
 <input type="text" name="sendText" maxlength="45" onChange="doPassVar(this)"> 

 每当文本域内容发生变化时,onChange就被触发,doPassVar()函数就被调用
 4.创建传递变量值的javascript函数
 复制下面的javascript到<head></head>标签内
 <script LANGUAGE=javascript><!--function doPassVar(args){   var sendText = args.value;   window.document.myFlash.SetVariable("myVar", sendText);}//--></script>

 5.保存文件,测试一下(F12)

 Flash到javascript的通信
 从HTML可以发送数据到Flash,反过来也可以. 这个例子演示了如何应用Flash的Fscommand来发送数据到javascript.
 查看示例:示例2 下载源文件: flash_to_javascript.zip(10K)

 简要步骤:
 >Flash中
 新建一个文件,保存为flash_to_javascript.fla
 创建一个文本域,设置成输入文本(Input Text),选择"border"以便我们能看到他,指定他的变量为inputVar
 创建一个按钮,在按钮上添加如下的as:
 on (release) {  fscommand ("send_var", inputVar);}

 保存文件,导出HTML和SWF

 >Dreamweaver中
 1.打开导出HTML文件,修改<OBJECT>和<EMBED>标签,结果同上:
 <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=366 height=142 id="myFlash"><embed src="javascript_to_flash.swf" quality=highwidth=366 height=142type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash";; name="myFlash" swLiveConnect="true"></embed> 

 2. 插入如下的javascript到<Body>标签内:
 <script LANGUAGE=javascript><!--var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;function myFlash_DoFSCommand(command, args)                {  var myFlashObj = InternetExplorer ? myFlash : document.myFlash;  alert (args);}if (navigator.appName && navigator.appName.indexOf("Microsoft") != -1 &&   navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 3.1") == -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>

 3.保存,预览

 Flash和Flash的通信

 通过上面两种方法的混和使用,同一HTML中两个或者更多的Flash直接可以相互传送消息. 从一个flash使用fscommand传送消息给javascript,使用Flash的javascript methods把消息传给另外一个flash

 详细的看这里:Flash影片之间的通信示例
 http://www.macromedia.com/support/flash/ts/document./flash_to_flash_comm.htm

 

 从Flash MX开始,local connection对象可以用来在flash之间传送消息. 这使得同一HTML中的或者位于两个浏览器窗口中的两个flash影片可以相互发送消息,而不必使用javascript或者fscommand
 详细的看这里:在Flash MX中使用local connection对象
 http://www.macromedia.com/support/flash/action_scripts/local_connection_objects/index.html

 附可控制Flash Player的javascript方法:
 一览表:
 Play() -------------------------------------------------------- 播放动画 
 StopPlay()--------------------------------------------------- 停止动画 
 IsPlaying()--------------------------------------------------- 动画是否正在播放
 GotoFrame(frame_number)---------------------------- 跳转到某帧 
 TotalFrames()---------------------------------------------- 获取动画总帧数 
 CurrentFrame()-------------------------------------------- 回传当前动画所在帧数-1 
 Rewind()---------------------------------------------------- 使动画返回第一帧 
 SetZoomRect(left,top,right,buttom)--------------- 放大指定区域 
 Zoom(percent)-------------------------------------------- 改变动画大小 
 Pan(x_position,y_position,unit)----------------------- 使动画在x,y方向上平移 
 PercentLoaded()------------------------------------------ 返回动画被载入的百分比 
 LoadMovie(level_number,path)----------------------- 加载动画 
 TGotoFrame(movie_clip,frame_number)----------- movie_clip跳转到指定帧数 
 TGotoLabel(movie_clip,label_name)----------------- movie_clip跳转到指定标签 
 TCurrentFrame(movie_clip)----------------------------- 回传movie_clip当前帧-1 
 TCurrentLabel(movie_clip)------------------------------ 回传movie_clip当前标签 
 TPlay(movie_clip)------------------------------------------ 播放movie_clip 
 TStopPlay(movie_clip)----------------------------------- 停止movie_clip的播放 
 GetVariable(variable_name)---------------------------- 获取变量 
 SetVariable(variable_name,value)--------------------- 变量赋值 
 TCallFrame(movie_clip,frame_number)-------------- call指定帧上的action 
 TCallLabel(movie_clip,label)----------------------------- call指定标签上的action 
 TGetProperty(movie_clip,property)------------------ 获取movie_clip的指定属性 
 TSetProperty(movie_clip,property,number)------- 设置movie_clip的指定属性 

 详细资料: www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html

将本文收藏到QQ书签与更多好友分享
[打 印]
[] [返回上一页] [收 藏]
下一篇文章:ASP+FLASH+ACCESS教程
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
精彩推荐
热门文章
· 注册码大全二
· 注册码大全四
· 注册码大全一
· 要10G免费网络硬盘的请进..
· 通过google 赶快来赚美金..
· 注册码大全十
· 头像-qq头像(qq新头像)4..
· 让你轻松架设FTP服务器1..
· 注册码大全三
· 梦幻背景图片7
· 卡通动物图片6
· 网页制作素材-按钮素材2..
· 让你轻松架设FTP服务器5..
· 风景图片8
· 注册码大全九
· 让你轻松架设FTP服务器2..
关注此文读者还看过
· ip00.com/2G免费邮箱
· DreamweaverJavaScript
· 用Flash制作神奇的弹性导..
· phpmysqladmin2.26安装方..
· CG城的精灵--精灵初现(5..
· 最全面的WindowsXP修改大..
· JSP中的TagLib应用(3-3)..
· ASP实用大全-实战ASP(5)..
· 松做LOGO----AAALOGO使用..
· 正则表达式祥解(上)
· ASP小偷(远程数据获取)程..
· C#,深入浅出全接触(二..
· 安啦动画教程 第九课--1..
· 谈谈自己四年的个人网站..
· 使用MySql ODBC进行MYsq..
· XML轻松学习手册(4)XM..
相关文章
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 人才招聘
网站合作、内容监督、商务咨询:QQ: 9576619
Copyright ? 2005--2008 中国建站之家版权所有
粤ICP备05092265号