http://blog.csdn.net/oanqoanq/article/details/3897695

下面是一些在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)





Javascript到Flash的通信



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



查看示例: 示例

下载源文件: javascript_to_flash.zip(17k)



步骤:



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="/blog/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="/blog/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>





Flash和Flash的通信

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



详细的看这里: Flash影片之间的通信示例



从Flash MX开始,local connection对象可以用来在flash之间传送消息. 这使得同一HTML中的或者位于两个浏览器窗口中的两个flash影片可以相互发送消息,而不必使用Javascript或者fscommand

详细的看这里: 在Flash MX中使用local connection对象(英文)



本站的localConnection教程: http://www.blueidea.com/tech/multimedia/2003/739.asp



--------------------------------------
单独取出一个命令:
<SCRIPT LANGUAGE="JavaScript">

<!--

function testmovie_DoFSCommand(command, args) {

if (command == "call_alert") {

alert("Here's the Flash message: " + args);

}

}

//-->

</SCRIPT>

--------------------------------------



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

JS与flash交互通信控制的方法相关推荐

  1. Js与flash交互:在html页面中用js与MyReport插件交互

    <sdt id="89512093" sdtgroup="t" contentlocked="t" sdtlocked="t ...

  2. iOS: JS和Native交互的两种方法,iosjsnative交互

    iOS: JS和Native交互的两种方法,iosjsnative交互 背景: UIWebView: iOS 用来展示 web 端内容的控件. 1. 核心方法: - (NSString*)string ...

  3. python调用远程js_python和js交互调用的方法

    后台代码都是利用的1.[get方式]使用jquery的get json与后台交互前端js代码片段var data= {'a': $('input[name="a"]').val() ...

  4. python中和js交互_python和js交互调用的方法

    后台代码都是利用的 1.[get方式]使用jquery的get json与后台交互 前端js代码片段 var data= { 'a': $('input[name="a"]').v ...

  5. JS跟APP交互——H5调用原生APP的方法

    js向app传值问题 最近做的H5项目是需要嵌入到APP内使用的,这就涉及到js跟app交互的问题,我这边需要传值给app,以下是我在做项目过程中传值的方法,仅供参考. 解决方法 AppData这个J ...

  6. php幻灯片切换,JavaScript_JS实现FLASH幻灯片图片切换效果的方法,本文实例讲述了JS实现FLASH幻灯 - phpStudy...

    JS实现FLASH幻灯片图片切换效果的方法 本文实例讲述了JS实现FLASH幻灯片图片切换效果的方法.分享给大家供大家参考.具体实现方法如下: JS模拟FLASH幻灯片图片切换效果 /* ul,li{ ...

  7. JS 与Flex交互:html中的js 与flex中的actionScript通信

    Flex与JavaScript交互的问题,这里和大家分享一下,主要包括Flex调用JavaScript中的函数和JavaScript调用Flex中的函数两大部分内容. Flex 与JavaScript ...

  8. [转载]JS和AS交互 作者:ludanlove

    这个话题在网上应该说很好找,有很多这方面的资料.比者也看过一些,不过大部分都是AS2与JS进行交互.很少提到AS3,即使有,也让人感觉浅尝辄止.很多东西并没有介绍的太清楚.所有笔者萌生了写这样一篇教程 ...

  9. JS、Flash 实现复制功能 (浏览器兼容)

    JS.Flash 实现复制功能 (浏览器兼容) /**   此方法不兼容非IE外的浏览器...参考其它网站的实现方式,是用Flash来解决的此问题 */ function copyOperate(co ...

最新文章

  1. 覆盖与重载与隐藏——SAP电面(3)
  2. 使用VS2008进行WEB负载测试
  3. u3d 动态 随机 地图_我的世界1.12.2模组教程:VoxelMap小地图新老玩家辅助神器
  4. thinkphp5(改变html中的变量、赋值和替换)
  5. 详解proxy_pass、upstream与resolver
  6. 2012浙大878计算机专业基础综合大题答案解析
  7. php获取localstorage的值,localStorage的设置和取值Demo
  8. Android预定义样式?android:attr/attribute、?attr/attribute和?attribute
  9. html视频播放器兼容处理
  10. 线上展示3D可视化电子沙盘管理系统
  11. html 一键排版,用一键排版 排版好轻松
  12. 有什么好玩的网页小游戏网站推荐么?
  13. Spring Data Jpa 复合主键
  14. 从零学习Belief Propagation算法(三)
  15. python爬虫安装教程_环境安装-Python 原生爬虫教程 | IT大叔
  16. 某技术总监认为处女座码农要重用,并给出3点原因,你认同么?
  17. COPC酞菁钴,cAS号:3317-67-7磺化酞菁钴 催化剂 深蓝色粉末 磺化酞菁钴
  18. Appium学习笔记17-手机操作API之分辨率
  19. 开放英语计算机考试,(荐)最新电大《英语I(1)》(开放英语1)完成句子、翻译题归纳汇总复习小抄.doc...
  20. 计算机二级excel服装采购表,计算机二级EXCEL 衣物采购表

热门文章

  1. MySql之DDL操作创建表(添加主键, 外键约束以及基本的数据类型)
  2. python环境准备_python开发环境准备
  3. Struts文件上传包含修改文件上传参数,多文件上传
  4. Oracle sql解析类型, 软解析和硬解析浅析
  5. html 文件路径 d files,tmpfiles.d
  6. html简单网页代码表白_表白网页代码,不会代码也可以操作,告别单身
  7. qt 制作记事本_23.QT记事本
  8. 如何合理使用 CPU 管理策略,提升容器性能?
  9. tcp为什么比udp慢_TCP和UDP那些事儿
  10. Shell脚本详细介绍