`

HTML页面元素控制FLASH

阅读更多

如果抛离浏览器的平台,只是在FlashPlayer里播放我们的SWF文件,那么我们可以很自然地处理各个实例间的交互,但如果是在浏览器中运行我们的SWF文件了?我们能否将交互的范围扩大,让HTML页面的中元素来控制我们FLASH内部的交互了?答案是肯定的。

  • FlashVars 
  • 参数传递符 
  • JavaScript

以上三种方式都可以实现HTML中的元素来”控制”FLASH的播放,

 

下面我们来以一个简单的例子做个试验:
目的:HTML控制FLASH中动态文本的显示

 

一、FlashVars的实现方式
1、FLASH文件的制作:
建立main.fla文件,在场景里放入一个动态文本,实例名_txt;加入代码: _txt.text = arg,发布文件(这里看到的是undefined ,因为我们还没有赋值)

2、打开main.html文件
<object classid=”clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#v
ersion=8,0,0,0″ width=”550″ height=”400″ id=”main” align=”middle”>
<param name=”allowScriptAccess” value=”sameDomain” />
<param name=”movie” value=”main.swf” />
<param name=”FlashVars” value=”arg=Internet Explorer” />
<param name=”quality” value=”high” />
<param name=”bgcolor” value=”#ffffff” />
<embed src=”main.swf”  quality=”high” bgcolor=”#ffffff” width=”550″ height=”400″ name=”main” align=”middle” allowScriptAccess=”sameDomain” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer”/>
</object>
在object中加入粗体的那行代码,然后打开main.html,文本框已经获取到了我们的赋值Internet Explorer

我们能否传递多个参数?能!
方法一:将我们要传递的参数用间隔符号隔开,然后FLASH接收字符串拆分(这是我们最容易想到的方法)
方法二:联想到FLASH与文本的通信我们可以尝试也是用&符号来间隔变量,通过试验是可行的。
1.<param name=”FlashVars” value=”arg=Internet Explorer&arg2=hello” />
1.AS 改写为 _txt.text = arg+”:”+arg2;
测试:我们接收到了两个变量,成功!

 


实际意义:与服务器语言结合,能够动态改变flashvars的value,使FLASH做出不相应的响应;相比一些通过URL传递参数的方法,这个传递的参数个数和长度不受URL地址长度的限制。

 


浏览器兼容:
在IE中测试通过,在FireFox中再做测试,发现FLASH无法获取到我们的参数,这是因为FF与IE接收FlashVars的格式不同:对mian.html稍作修改:去掉我们添加的那行粗体代码;更改:

<embed src=”main.swf”  quality=”high” flashvars=”arg=Internet Explorer&arg2=hello” bgcolor=”#ffffff” width=”550″ height=”400″ name=”main” align=”middle” allowScriptAccess=”sameDomain” type=”application/x-shockwave-flash” pluginspage=”http://www.macromedia.com/go/getflashplayer” />
FF中测试通过,因此为了兼容浏览器,我们最好是两处都做修改。


二、参数传递符的实现方式
在URL请求中我们通常使用 “?”来传递参数,使用”&”来传递多个参数,如果用浏览器方式打开SWF文件,然后使用URL传递参数那么SWF能够接收到参数吗?可以做个简单的测试,答案是可以的。

 

但如果把这个SWF嵌入到HTML页中了?SWF就无法直接接收URL里传递的参数,因此这里需要另外一种做法。
依然使用上面的例子,我们在HTML页中插入SWF文件,然后更改:
<param name=”movie” value=”mian.swf?arg=IE&arg2=FF />
测试HTML页面,成功接收两个参数。


浏览器兼容:
为了在FF中兼容,需要修改embed标签
<embed src=”mian.swf?arg=IE&arg2=FF quality=”high” pluginspage=”http://www.macromedia.com/go/getflashplayer” type=”application/x-shockwave-flash” width=”300″ height=”400″>
如果要IE FF都兼容,同样需要两个地方都做更改-_-!


三、JavaScript的实现方式
JS的强大功能让我们能够自由操作HTML页面中的各种元素,FLASH也不例外,JS提供了一些方法来直接操作页面中的FLASH元素
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的指定属性

延用上面的例子 我们来试验SetVariable(variable_name,value)–变量赋值 这个方法:
1、设置插入的FLASH的object中id属性为”main”
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000″ codebase=”http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#v
ersion=7,0,19,0″ width=”400″ height=”180″ id=”main”>


2、自定义JS方法
function sendVar(args){
window.document.mian.SetVariable(”myVar.text”, args);
}
上面这段粗体代码即可访问到该页面中id为main的FLASH


3、在HTML页面中加入一个文本框表单,在焦点失去时调用上面的JS方法,将文本框中的数值在FLASH中传送
<input name=”" type=”text” onblur=”sendVar(this.value);”/>


4、测试IE浏览器通过
FF浏览器兼容
在FF中如果我们把FLASH的id写在了object中JS通信失败,解决方法是把id写如到embed中,而且object中不允许出现id的标签-_-!,所以要同时兼容IE FF似乎不可能实现,哪位有实现方式欢迎交流
来源:http://blog.sina.com.cn/s/blog_6233e22a0100f172.html

分享到:
评论

相关推荐

    FLASH音乐播放器控制

    5. 发布与嵌入:将Flash文件导出为SWF格式,然后在HTML页面中通过`&lt;object&gt;`或`&lt;embed&gt;`标签嵌入。 四、优化技巧 1. 延迟加载:为了提高页面加载速度,可以使用ActionScript动态加载音频文件,只有当用户需要时才...

    静态html页面插入flash作业

    在网页设计领域,静态HTML...在完成这个作业时,你可以创建一个简单的HTML页面,然后尝试插入Flash元素,调整大小和位置,测试在不同浏览器上的显示效果。通过实践,你会对HTML页面的构建和Flash的嵌入有更深入的理解。

    怎样在html页面中播放flash动画.swf文件.png

    在HTML页面中嵌入并播放Flash动画.SWF文件是一个常见的需求,特别是在早期的网页设计中,Flash被广泛用于创建交互式内容和动态图形。这里我们将详细介绍如何实现这一目标,并涉及与SWF文件相关的HTML和Flash基础知识...

    页面flash单击控件取消

    这通常可以在Flash Player的高级设置中找到,允许“通过HTML链接控制Flash”。 2. **使用ActionScript**:如果你是Flash开发者,可以编写ActionScript代码来处理这种情况。通过监听鼠标事件并主动分发这些事件到...

    flash素材 html素材

    这些文件可以直接嵌入到HTML页面中,通过ActionScript(Flash的编程语言)控制交互行为。而HTML素材可能包括图片(JPEG、PNG、GIF)、CSS样式表、JavaScript文件等,这些都是构建动态和交互网页的关键元素。 总之,...

    HTML嵌套Flash播放视频插件及源码.zip

    在HTML页面中嵌入Flash,可以让用户无需离开页面就能观看视频,提高了用户体验。 2. **HTML5 Video vs Flash**: 在HTML5出现之前,Flash是网页视频播放的主流解决方案。然而,由于HTML5对现代浏览器的广泛支持和...

    基于javaweb+jsp+flash让网页元素插件

    通过ActionScript,可以控制Flash内容与网页其他元素的交互。 3. **交互界面**:Flash的交互性可以用于创建复杂的用户界面,如滑块、下拉菜单、按钮等。这些元素可以通过JSP与后端进行数据通信,实现用户操作的实时...

    网页里加载flash

    在传统的Web开发中,最常用的是Adobe Flash Player,但随着HTML5的普及和移动设备对Flash的支持减少,现在更多的开发者转向HTML5的多媒体元素,如`&lt;video&gt;`和`&lt;audio&gt;`。尽管如此,对于仍需支持Flash内容的项目,...

    flash+html的前台显示

    `说明.htm`可能包含了如何在HTML页面中嵌入Flash对象的指导。 图片切换效果是网页设计中常见的功能,`图片切换效果.rar`可能包含了一些用Flash实现的动态图片轮播组件。这种效果可以使网页更生动,同时展示多张图片...

    HTML5 Canvas, flash version

    1. 当在不支持Canvas的浏览器中加载包含FlashCanvas的页面时,JavaScript会检测到Canvas元素。 2. FlashCanvas会动态插入一个Flash对象来替代Canvas元素。 3. JavaScript API调用Canvas的绘图方法时,这些方法会被...

    带有flash的html模板

    在提供的压缩包中,包含6套“flash+html网页模板”,这意味着有六种不同的网页设计,每个都结合了HTML页面结构与Flash元素。这些模板可能包括以下组成部分: 1. HTML文件:这是网页的基础,包含了文本、链接、图片...

    flash页面跳转

    此部分定义了一个简单的HTML页面结构,包含一个只读的文本输入框,其初始值为10,并具有一个id属性为"time",以便JavaScript可以通过这个ID来访问并修改它的值。 #### JavaScript逻辑 ```javascript var t = 10; ...

    flash实现的HTML柱状图控件

    在这个页面中,开发者可以了解到如何配置和展示柱状图,包括数据的输入格式、颜色设置、图例显示、轴标签和值等关键元素。通过查看源代码,我们可以学习到如何用HTML和JavaScript与Flash交互,将动态图表嵌入到网页...

    html中flash播放器

    此外,还可以与HTML页面其他元素进行交互,如接收用户输入,响应按钮点击等。 5. HTML5的崛起与Flash的衰落: 随着HTML5的普及,尤其是其内置的`&lt;video&gt;`和`&lt;audio&gt;`标签,使得网页可以直接原生支持音频和视频播放...

    flash实现的页面相册

    这涉及到HTML和JavaScript的集成,以便在网页中正确调用和控制Flash内容。 9. **响应式设计**:考虑到不同设备和屏幕尺寸,现代的页面相册可能还需要适应性设计。这可能涉及到使用Flex布局或自适应ActionScript代码...

    html5 滑动页面切换tab

    3. 媒体元素:`&lt;audio&gt;`和`&lt;video&gt;`元素使得在网页中嵌入音频和视频内容变得更加简单,而不需要依赖Flash等第三方插件。 二、滑动切换的实现 滑动切换通常结合JavaScript和CSS来实现。以下是一般步骤: 1. 使用...

    HTML嵌入Flash Media Playback控件

    通过在HTML页面中嵌入Flash Media Playback控件,开发者能够创建互动的媒体播放体验,支持RTMP(Real-Time Messaging Protocol)和其他协议,如HTTP。 Flash Media Playback控件是一个轻量级的Flash应用程序,它...

    在页面添加Flash

    本文将详细介绍如何在HTML页面中嵌入Flash动画,包括必要的代码片段及其作用。 #### 二、基本概念 在开始之前,我们需要了解几个基本的概念: 1. **SWF格式**:是Flash文件的标准格式,由Adobe Systems开发。 2. ...

    FLASH 读取html 标签

    HTML页面可以动态生成XML,然后通过JavaScript传递给Flash。这种方式对数据量较大或者需要结构化数据的情况更为合适。 4. **IFrame嵌套**:有时,Flash被嵌入到一个HTML的IFrame中,这时可以通过访问IFrame的...

    个人网页html和flash结合

    这使得Flash内容能够在网页中无缝显示,同时,通过HTML控制Flash的大小、位置和初始参数。 2. 交互集成:通过ActionScript,Flash可以与HTML进行交互,比如响应HTML中的事件,或者从HTML获取数据。这使得Flash元素...

Global site tag (gtag.js) - Google Analytics