`
lxf_2011
  • 浏览: 60691 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js与flash那些事

阅读更多

   说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威
下面是一些在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文件中.


  步骤:
  >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=142
type="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=high
width=366 height=142 type="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对象


  附可控制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的指定属性


分享到:
评论

相关推荐

    flash.jsFlash的JS文件下载

    flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash.js js 下载 文件flash flash...

    videojs-flash-2.2.0.zip

    总结,videojs-flash 2.2.0作为Video.js的插件,为那些仍然依赖Flash的用户提供了视频播放的解决方案。它在保持与HTML5视频一致性的同时,也考虑到了向后兼容性和用户体验,是开发者在构建跨平台视频播放器时不可或...

    javascript-flash-js

    JavaScript、Flash和JS这三个术语在IT领域中都占据着重要的地位。它们分别代表了Web开发中的不同技术,各自有着独特的功能和应用场景。 首先,JavaScript是一种轻量级的解释型编程语言,广泛应用于网页和网络应用的...

    前端项目-videojs-flash.zip

    本项目“前端项目-videojs-flash.zip”专注于Video.js与Flash技术的集成,适用于那些仍然需要Flash支持的场景。 Video.js本身是一个强大的HTML5视频播放器,它的核心是基于JavaScript和CSS3构建的,能够很好地适应...

    Flash+js禁用flash右键

    本文将深入探讨如何通过Flash和JavaScript的结合实现这一功能。 首先,让我们了解Flash。Adobe Flash是一种曾经广泛应用于创建交互式内容、动画和网页小应用程序的技术。它允许开发人员创建丰富的媒体体验,包括...

    用js实现flash效果

    JavaScript(简称JS)是一种轻量级的、解释型的编程语言,广泛应用于Web开发,用于增加网页的交互性和动态功能。在本主题中,我们将探讨如何利用JavaScript来实现类似Flash的动画效果,这是一种在现代浏览器中创建...

    javascript与flash之间的交互(例子)

    3. **Flash 发布设置**: 为了使 Flash 能够与 JavaScript 通信,需要在 Flash 的发布设置中启用 "Allow Script Access",并指定访问类型,如 "always" 或 "sameDomain"。 **JavaScript 调用 Flash 示例** ```html ...

    JS加载flash进度条

    1. **设置Flash与JavaScript的交互**: 在Flash ActionScript中,我们需要启用ExternalInterface并添加一个方法来报告加载进度。例如,可以创建一个名为`reportProgress`的方法,该方法接受加载百分比作为参数。...

    用js生成flash插件

    **JavaScript与Flash交互**: 通过Flash的ActionScript和JavaScript之间的Bridge,可以实现两者间的交互。例如,你可以在Flash中定义一个函数,然后在JavaScript中调用它,或者从JavaScript向Flash传递数据。 **...

    js控制flash的基本命令

    在Web页面中集成Flash时,JavaScript(JS)与Flash之间的交互变得尤为重要。通过JS可以实现对Flash内容的控制,如播放、停止、跳转帧等操作。本文将详细介绍JS控制Flash的一系列基本命令及其使用方法。 #### 二、JS...

    js调用AS flash函数

    首先,理解JS与AS通讯的基础是`ExternalInterface`,这是Flash Player提供的一个API,允许ActionScript代码与JavaScript环境进行交互。在AS端,你需要先启用`ExternalInterface.addCallback`方法来注册一个可供JS...

    JS 调用Flash播放mp3

    总结来说,JS调用Flash播放MP3涉及到JavaScript与Flash的交互、ActionScript音频处理以及用户交互设计等多个方面。通过合理的设计和实现,我们可以创建一个功能完善的音频播放系统,即使在HTML5不完全支持的环境中,...

    flash调用js输入法

    flash项目调用js输入法,在flash内点击事件唤出外面的js输入法,输入完毕确定后可将键入汉字反馈至flash内并响应事件。实现输入法div悬浮在flash上...注:需要在IIS环境下才能实现flash与js之间数据传递。 2014-3-22

    js flash播放器

    为了使JavaScript能控制Flash,需要在ActionScript中定义ExternalInterface,这允许Flash与JavaScript之间进行通信。 4. **JavaScript调用Flash方法**: 一旦定义了ExternalInterface,JavaScript就可以调用Flash...

    js和flash交互的小例子

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

    JS不断给FLASH传值

    在JavaScript(JS)和Adobe Flash(AS3)的交互中,常常需要实现从JavaScript向Flash传递数据的功能。这种通信机制可以让我们在网页中利用Flash的动态特性,同时借助JavaScript处理DOM和其他网页交互。本教程将深入...

    js调用flash问题

    - 由于安全限制,Flash与JavaScript的交互只能在同源策略下进行。确保Flash文件(如`wavplayer.swf`)与包含它的HTML页面位于同一个域名下。 - 有时,浏览器的Flash插件可能会阻止JavaScript访问Flash,尤其是隐私...

    javascript与flash相互调用

    "external2.swf"是编译后的Flash文件,而"js_flash.swf"可能是另一个示例,展示了JavaScript与Flash的交互。 6. **安全考虑**:尽管ExternalInterface提供了便利,但也有安全风险。恶意代码可能利用这个接口进行跨...

    Js+Flash实现图片轮换

    标题“Js+Flash实现图片轮换”涉及到的是一个利用JavaScript和Adobe Flash技术来创建动态图片展示的方法。在网页设计和开发中,图片轮换通常用于制作幻灯片、广告横幅或者图片画廊,以吸引用户注意力并提供交互式...

    JavaScript和Flash的通信(转)

    3. **Flash与Flash之间的通信**:这种方式涉及到更复杂的机制,如使用共享对象(Shared Objects)或网络连接(Socket Connections)等。 #### 二、从JavaScript到Flash ##### 实现方法:使用Flash对象的方法 在...

Global site tag (gtag.js) - Google Analytics