`
tomEnjoy
  • 浏览: 145693 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

前言、JavaScript和Macromedia Flash的通信示例

    博客分类:
  • Ext
阅读更多
原文地址: http://www.macromedia.com/support/flash/ts/documents/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)

步骤:

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>
三、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对象(英文)

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

分享到:
评论

相关推荐

    Macromedia Flash Player 8.0 r22

    很多的朋友反映,将喜欢的Flash动画下载到自己的电脑后总是用IE浏览器或者第三方Flash播放器才能观看,感觉不好,希望用Macromedia的Flash Player播放,可是又很难找到!现在我就发一个最新版本的给大家!不过请注意...

    Macromedia FlashPlayer 9.0.16.0

    Macromedia Flash Player 最新版

    Macromedia flash 8入门

    ### Macromedia Flash 8 入门知识点详解 #### 一、引言 随着数字媒体技术的不断发展,动画创作已成为互联网时代不可或缺的一部分。Macromedia Flash 8 是一款集动画创作与网页应用开发于一体的强大工具,它不仅...

    FLASH 注册序列号 Macromedia Flash 8.0 简体版.exe

    在探讨“FLASH 注册序列号 Macromedia Flash 8.0 简体版.exe”这一主题时,我们首先需要了解几个关键的概念和技术背景。Macromedia Flash 8.0 是一款由Macromedia公司开发的动画创作软件,后来被Adobe Systems收购。...

    Macromedia Flash MX 2004 V7.01 简体

    Macromedia Flash MX 2004 V7.01 简体

    中文版Macromedia Flash MX 2004速成实用教程

    Flash MX 2004是Macromedia公司(后被Adobe收购)推出的一款强大的交互式矢量图形和富媒体开发工具,它在网页设计、动画制作、游戏开发和在线应用程序中有着广泛的应用。本教程旨在帮助初学者快速掌握这款软件的基本...

    Macromedia Flash MX 2004 V7.01 简体中文版

    Macromedia Flash MX 2004 V7.01 简体中文版 文件太大,我分8个,每个1分。

    Macromedia™ Flash Lite™ 1.1入门

    ### Macromedia™ Flash Lite™ 1.1 入门 #### 一、关于 Flash Lite 1.1 **Flash Lite 1.1** 是由 Macromedia(现已被 Adobe 收购)开发的一种轻量级版本的 Flash 技术,专为移动设备设计。它允许开发者利用 Flash...

    Macromedia Flash MX 2004

    Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其紧密的导航界面、技术说明以及其他奇特的效果。完全汉化版,实用于测试正式版!本次更新的内容:汉化95%的函数,更改...

    Macromedia flash作品

    Macromedia Flash是一款曾经风靡全球的动画创作软件,它以其独特的矢量图形编辑和交互式内容制作能力,成为互联网早期动态内容的主要创作工具。Flash作品不仅包括动画,还涵盖了游戏、教育演示、互动媒体等多种形式...

    Macromedia.Flash.8.For.Dummies.pdf

    《Macromedia Flash 8 For Dummies》是一本详尽且易于理解的指南,旨在帮助初学者和有经验的用户掌握Adobe Flash(现为Adobe Animate)的第八个版本。这本书由Ellen Finkelstein和Gurdy Leete共同编写,是Wiley ...

    Macromedia Flash文件格式(SWF)详细说明书中文版

    **Macromedia Flash ...总结来说,Macromedia Flash文件格式(SWF)是一个强大的多媒体展示工具,它通过高效的编码和ActionScript支持,创造了丰富的网络互动体验。尽管面临淘汰,但它在互联网历史上的地位不容忽视。

    Macromedia.Flash.Player.7.0.0.2

    Macromedia.Flash.Player.7.0.0.2

    Macromedia Flash MX 2004 - Getting Started with Flash (英文版)

    通过详细的步骤和丰富的示例,读者可以快速掌握使用Flash MX 2004进行创作的基本技能。 #### 关键知识点概述 根据给定的标题、描述以及部分内容,我们可以提炼出以下几个关键知识点: 1. **软件简介** - **版本...

    Macromedia Flash MX Professional 2004 v7.2

    Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其紧密的导航界面、技术说明以及其他奇特的效果。完全汉化版,实用于测试正式版!本次更新的内容:汉化95%的函数,更改...

    Macromedia Flash 8.0 简体中文版

    Flash是交互式矢量图和Web动画的标准。网页设计者使用Flash能创建漂亮的、可改变尺寸的、以及极其紧密的导航界面、技术说明以及其他奇特的效果。

    Macromedia Flash v8.0 英文版

    总之,Macromedia Flash v8.0作为一款里程碑式的软件,它的特性不仅推动了互联网多媒体内容的发展,也为设计师和开发者提供了强大而全面的创作工具,直至今日仍有许多网站和应用依赖Flash技术来实现丰富的交互体验。

    Macromedia Flash MX_FlashMX_actionscript_

    《Macromedia Flash MX: Flash MX ActionScript for Fun and Games》是关于使用Flash MX进行游戏开发和动作脚本编程的专业指南。这本书由Gary Rosenzweig撰写,旨在帮助读者掌握Flash MX中的ActionScript,以便创建...

    Macromedia Flash 8 Bible part2

    Macromedia Flash 8 Bible

Global site tag (gtag.js) - Google Analytics