当前位置:七道奇文章资讯设计学堂Flash设计
日期:2009-04-04 02:13:00  来源:本站整理

<b>HTML网页与FLASH之间的"静态"传值</b>[Flash设计]

赞助商链接



  本文“<b>HTML网页与FLASH之间的"静态"传值</b>[Flash设计]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在论坛上常常瞥见有新手问到“我想让FLASH得到URL中的参数ID号,该怎么办?”“某某视频网站的FLASH播放器是若何播放差别ID的视频的?”...诸如此类问题看到了太多,每次都有一堆回帖,众说纷纭,里面不免有误导性质的答复.本日特结合自己平常工作中利用的心得对此类问题做一个小小的归纳.

  我所指的静态传值是辨别于与服务端通信举行值传送的方法,比方LoadVars,XML,Remoting之类,后者暂且不在本文的谈论范围内,当你想让FLASH获得URL中的参数时,你为什么不换个角度想了?其实我们可以让服务端动态生成SWF的的插入代码,主动将我们需求的参数“静态”传送给FLASH,FLASH直接用便可以了,根本不需求自己去拿,而以何种情势传送给FLASH,就是我所指的静态传值.我知道的可行的HTML与FLASH之间的静态传值办法有三种:

SWF地址后利用参数传送符“?”
FlashVars传送
JS掌握

  下面来具体介绍下这三种方法的传送是若何工作的:

   1、SWF地址后利用参数传送符“?”

  我们知道,在ULR地址中利用参数传送符“?”可以以GET方法传送参数,比方http://www.v-sky.com?uid=12&uname=vsky,这里利用了参数传送符“?”,同时利用了衔接符“&”做为变量脱离标识,以这种标准的格局来传送两个参数:uid=12和uname=vsky,那么服务端可以利用GET方法获得这两个值.

  在FLASH中我们一样可以采取近似的方法来传送参数,HTML页面中插入SWF文件最常用的就是利用Object标签和Embed标签结合的方法,这也是Adobe的举荐方法:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf?uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf?uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

此中粗体部份对应的就是SWF文件的地址,那么我们可以在这个地址背面通过近似于URL中GET方法传参的办法来个SWF传送参数,比方上面代码在页面完好加载完毕时,它已经给SWF文件写入了两个变量:uid=12和uname=vsky.

   2、FlashVars传送

  你可以查阅FLASH帮忙文档来看FlashVars的官方定义.其实在HTML语法中,这是一个被很多新手所轻忽的属性,一样以上面的参数为例,下面用FlashVars来传送变量:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="400" height="300" id="flashvars" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="demo.swf" />
<param name="FlashVars" value="uid=12&uname=vsky" />
<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
<embed src="demo.swf" FlashVars="uid=12&uname=vsky" quality="high" bgcolor="#ffffff" width="400" height="300" name="flashvars" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>

跟方法一相同,它也是直接给FLASH里增添了这两个变量.但我个人举荐利用此方法,结合SWFObject的利用,利用FlashVars来传送变量有很多好处,比方代码清楚,简单管理,浏览其兼容,符合尺度.他们的结合利用在“为FLASH程序构造机动的接口”一文中我已经做了介绍(PS:随后我会供应一个复杂点的、有说服力的实际利用来阐明这种机动接口的利用).

   3、JS掌握

  关于客户端页面中的资源,JS通过DOM构造来掌握它们可以说是随心所欲的,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办法,JS通过调用此办法可以直接更改SWF中的变量值.首先我们需求定义插入的SWF的ID,比方id为VskyDemo,那么我们可以通过下面的JS语句来完成SWF内部变量的设置: window.document.VskyDemo.SetVariable("uid", 12);

很简单吧,就是这样的.除非是触及到了HTML中SWF之外元素跟它交互,不然我普通不利用JS来掌握SWF里的变量,因为我总认为怪怪的,呵呵,个人习惯吧.多多实践,不要认为这些小东西不起眼,小东西多了,聚结到一同了就是一个大的利用.条条大路通北京,挑选你自己喜好的,自己认为便捷的方法便可以了,目前我是没有发现这三个方法存在功效上的缺陷.


  以上是“<b>HTML网页与FLASH之间的"静态"传值</b>[Flash设计]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .