联系我们
cms新闻网站系统、政府cms定制开发

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

报纸新媒体网站内容发布一体化解决方案联系电话
/
http://www.kize.icu/
广州网站建设公司
您当前位置:首页>广州网站建设

广州网站建设

HTML中FLASH的”交互”方式

发?#38469;?#38388;:2009/12/24 16:04:21  作者:  阅读:836  

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

  • FlashVars
  • ?#38382;?#20256;递符
  • 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
我们能否传递多个?#38382;?#33021;!
方法一:将我们要传递的?#38382;?#29992;间隔符号隔开,然后FLASH接收字符串拆分
(这是我们最容易想到的方法)
方法二:联想到FLASH与文本的通信我们可以尝试也是用&符号来间隔变量,通过试验是可行的。
1.<param name=”FlashVars” value=”arg=Internet Explorer&arg2=hello” />
1.AS 改写为 _txt.text = arg+”:”+arg2;
测试:我们接收到了两个变量,成功!
实际意义:与服务器语言结合,能够动态改变flashvars的value,使FLASH做出不相应的响应;相比一些通过URL传递?#38382;?#30340;方法,这个传递的?#38382;?#20010;数?#32479;?#24230;不受URL地址长度的限制。
浏览器兼容:
在IE中测试通过,在FireFox中再做测试,发现FLASH无法获取到我们的?#38382;?#36825;是因为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中测试通过,因此为了兼容浏览器,我们最好是两处都做修改。
二、?#38382;?#20256;递符的实现方式
在URL请求中我们通常使用 “?”来传递?#38382;?#20351;用”&”来传递多个?#38382;?#22914;果用浏览器方式打开SWF文件,然后使用URL传递?#38382;?#37027;么SWF能够接收到?#38382;?#21527;?可以做个简单的测试,答案是可以的。但如果把这个SWF嵌入到HTML页中了?SWF就无法直接接收URL里传递的?#38382;?#22240;此这里需要另外一种做法。
依然使用上面的例子,我们在HTML页中插入SWF文件,然后更改:
<param name=”movie” value=”mian.swf?arg=IE&arg2=FF” />
测试HTML页面,成功接收两个?#38382;?br />浏览器兼容:
为了在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?#25216;?#23481;,同样需要两个地方都做更改-_-!
三、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);
}
上面这段粗体代码即可访?#23454;?#35813;页面中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似乎不可能实现,哪位有实现方?#20132;?#36814;交流

相关文章
HTML中FLASH的”交互”方式
cms新闻系统购买咨询
扫描关注 广州阅速软件科技有限公司
扫描关注 广州阅速科技
莱万特s
广东快乐十分前组35期 3d棋牌注册送30 双色球开奖规则 内蒙古快三官方下载 今晚开什么特马 合肥按摩打飞机 专家足彩推荐预测 1分快3破解器 99白小姐三开奖结果 吉林时时票开奖结果 排球比分查询 韩国美女比基尼视频 天津快乐十分开奖图 三分赛计划网 2018年白姐特马一小狗 黑龙江快乐十分走势图爱彩乐