新闻建站cms系统、政府cms系统定制开发

广州网站建设公司-阅速公司

asp.net新闻发布系统、报纸数字报系统方案
/
http://www.ysneo.com/
广州网站建设公司
您当前位置:首页>广州网站建设

广州网站建设

HTML中FLASH的”交互”方式

发布时间:2009/12/24 16:04:21  作者:  阅读:1018  

广告:阿里云采购优惠专区

正是有了浏览器这个大舞台,才使得FLASH能够在互联网上大放光彩,而在她友好而灵活的互动性背后实际上是程序的交互,这就带来了一个不容忽视的问题--交互对象是谁?
如果抛离浏览器的平台,只是在FlashPlayer里播放我们的SWF文件,那么我们可以很自然地处理各个实例间的交互,但如果是在浏览器中运行我们的SWF文件了?我们能否将交互的范围扩大,让HTML页面的中元素来控制我们FLASH内部的交互了?答案是肯定的。

  • FlashVars
  • 参数传递符
  • JavaScript

以上三种方式都可以实现HTML中的元素来”控制”FLASH的播放,下面我们来以一个简单的例子做个试验:
目的:HTML控制FLASH中动态文本的显示(PS:太简单哦,先打好基础嘛)
一、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似乎不可能实现,哪位有实现方式欢迎交流

广告:阿里云新人采购专场

相关文章
HTML中FLASH的”交互”方式
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技