HTML網(wǎng)頁(yè)與FLASH之間的“靜態(tài)”傳值_Flash教程
推薦:Flash8輕松繪制一個(gè)超酷的網(wǎng)站導(dǎo)航使用Flash8可以輕松繪制一個(gè)超酷的網(wǎng)站導(dǎo)航菜單,這個(gè)教程由于步驟比較煩瑣,在這里我只給大家簡(jiǎn)單的講解一下,假如你想深入學(xué)習(xí),那就自己研究下源文件吧!效
在論壇上經(jīng)常看見(jiàn)有新手問(wèn)到“我想讓FLASH得到URL中的參數(shù)ID號(hào),該怎么辦?”“某某視頻網(wǎng)站的FLASH播放器是如何播放不同ID的視頻的?”...諸如此類(lèi)問(wèn)題看到了太多,每次都有一堆回帖,眾說(shuō)紛紜,里面難免有誤導(dǎo)性質(zhì)的回復(fù)。今天特結(jié)合自己平時(shí)工作中使用的心得對(duì)此類(lèi)問(wèn)題做一個(gè)小小的歸納。
我所指的靜態(tài)傳值是區(qū)別于與服務(wù)端通信進(jìn)行值傳遞的方式,例如LoadVars,XML,Remoting之類(lèi),后者暫且不在本文的討論范圍內(nèi),當(dāng)你想讓FLASH獲取URL中的參數(shù)時(shí),你為何不換個(gè)角度想了?其實(shí)我們可以讓服務(wù)端動(dòng)態(tài)生成SWF的的插入代碼,主動(dòng)將我們需要的參數(shù)“靜態(tài)”傳遞給FLASH,F(xiàn)LASH直接用就可以了,根本不需要自己去拿,而以何種形式傳遞給FLASH,就是我所指的靜態(tài)傳值。我知道的可行的HTML與FLASH之間的靜態(tài)傳值方法有三種:
SWF地址后使用參數(shù)傳遞符“?”
FlashVars傳遞
JS控制
下面來(lái)具體介紹下這三種方式的傳遞是如何工作的:
一、SWF地址后使用參數(shù)傳遞符“?”
我們知道,在ULR地址中使用參數(shù)傳遞符“?”可以以GET方式傳遞參數(shù),例如http://www.v-sky.com?uid=12&uname=vsky,這里使用了參數(shù)傳遞符“?”,同時(shí)使用了連接符“&”做為變量分隔標(biāo)識(shí),以這種規(guī)范的格式來(lái)傳遞兩個(gè)參數(shù):uid=12和uname=vsky,那么服務(wù)端可以使用GET方式獲取這兩個(gè)值。
在FLASH中我們同樣可以采用類(lèi)似的方式來(lái)傳遞參數(shù),HTML頁(yè)面中插入SWF文件最常用的就是使用Object標(biāo)簽和Embed標(biāo)簽結(jié)合的方式,這也是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>
其中粗體部分對(duì)應(yīng)的就是SWF文件的地址,那么我們可以在這個(gè)地址后面通過(guò)類(lèi)似于URL中GET方式傳參的方法來(lái)個(gè)SWF傳遞參數(shù),例如上面代碼在頁(yè)面完全加載完畢時(shí),它已經(jīng)給SWF文件寫(xiě)入了兩個(gè)變量:uid=12和uname=vsky。
二、FlashVars傳遞
你可以查閱FLASH幫助文檔來(lái)看FlashVars的官方定義。其實(shí)在HTML語(yǔ)法中,這是一個(gè)被很多新手所忽視的屬性,同樣以上面的參數(shù)為例,下面用FlashVars來(lái)傳遞變量:
<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里添加了這兩個(gè)變量。但我個(gè)人推薦使用此方式,結(jié)合SWFObject的使用,使用FlashVars來(lái)傳遞變量有很多好處,例如代碼清楚,輕易治理,瀏覽其兼容,符合標(biāo)準(zhǔn)。他們的結(jié)合使用在“為FLASH程序構(gòu)造靈活的接口”一文中我已經(jīng)做了介紹(PS:隨后我會(huì)提供一個(gè)復(fù)雜點(diǎn)的、有說(shuō)服力的實(shí)際應(yīng)用來(lái)說(shuō)明這種靈活接口的使用)。
三、JS控制
對(duì)于客戶(hù)端頁(yè)面中的資源,JS通過(guò)DOM結(jié)構(gòu)來(lái)控制它們可以說(shuō)是隨心所欲的,F(xiàn)LASH也不例外,下面是Flash Player的Javascript方法一覽表:
Play() —————————————- 播放動(dòng)畫(huà)
StopPlay()————————————停止動(dòng)畫(huà)
IsPlaying()———————————– 動(dòng)畫(huà)是否正在播放
GotoFrame(frame_number)—————- 跳轉(zhuǎn)到某幀
TotalFrames()——————————- 獲取動(dòng)畫(huà)總幀數(shù)
CurrentFrame()——————————回傳當(dāng)前動(dòng)畫(huà)所在幀數(shù)-1
Rewind()————————————-使動(dòng)畫(huà)返回第一幀
SetZoomRect(left,top,right,buttom)——-放大指定區(qū)域
Zoom(percent)——————————改變動(dòng)畫(huà)大小
Pan(x_position,y_position,unit)————使動(dòng)畫(huà)在x,y方向上平移
PercentLoaded()—————————-返回動(dòng)畫(huà)被載入的百分比
LoadMovie(level_number,path)———– 加載動(dòng)畫(huà)
TGotoFrame(movie_clip,frame_number)- movie_clip跳轉(zhuǎn)到指定幀數(shù)
TGotoLabel(movie_clip,label_name)—— movie_clip跳轉(zhuǎn)到指定標(biāo)簽
TCurrentFrame(movie_clip)————— 回傳movie_clip當(dāng)前幀-1
TCurrentLabel(movie_clip)—————–回傳movie_clip當(dāng)前標(biāo)簽
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指定標(biāo)簽上的action
TGetProperty(movie_clip,property)——–獲取movie_clip的指定屬性
TSetProperty(movie_clip,property,number)———-設(shè)置movie_clip的指定屬性
在這里我們只需要使用的是粗體標(biāo)識(shí)的SetVariable方法,JS通過(guò)調(diào)用此方法能夠直接更改SWF中的變量值。首先我們需要定義插入的SWF的ID,例如id為VskyDemo,那么我們可以通過(guò)下面的JS語(yǔ)句來(lái)完成SWF內(nèi)部變量的設(shè)置: window.document.VskyDemo.SetVariable("uid", 12);
很簡(jiǎn)單吧,就是這樣的。除非是涉及到了HTML中SWF之外元素跟它交互,否則我一般不使用JS來(lái)控制SWF里的變量,因?yàn)槲铱傆X(jué)得怪怪的,呵呵,個(gè)人習(xí)慣吧。多多實(shí)踐,不要覺(jué)得這些小東西不起眼,小東西多了,聚結(jié)到一起了就是一個(gè)大的應(yīng)用。條條大路通北京,選擇你自己喜歡的,自己認(rèn)為便捷的方式就可以了,目前我是沒(méi)有發(fā)現(xiàn)這三個(gè)方式存在功能上的缺陷。
歡迎大家加入討論,如承蒙轉(zhuǎn)載,請(qǐng)注明出處:http://www.v-sky.com/blog/index.php/archives/179
分享:Flash制作動(dòng)漫中常用的眨眼效果動(dòng)畫(huà)今天看一個(gè)很早以前的flash留言板,上面也有個(gè)眨眼效果.分析方法的確很簡(jiǎn)單,總結(jié)了一下,發(fā)上來(lái),這種效果在動(dòng)漫上經(jīng)常看到,簡(jiǎn)單實(shí)用,廢話(huà)不多了,看教程吧.
- as中禁用ESC鍵
- AS3.0 圖片變黑白 圖片彩色變黑白代碼
- flash as3.0 跨域的解決辦法
- 模板無(wú)憂(yōu)FLASH透明代碼
- Flash教你制作卡通MM眨眼睛動(dòng)畫(huà)
- Flash從零開(kāi)始學(xué)習(xí)創(chuàng)建單選按鈕
- Flash繪制小龍與花插畫(huà)場(chǎng)景
- Flash程序的測(cè)試方法
- Flash CS4文字顏色緩動(dòng)特效
- 網(wǎng)頁(yè)中演示類(lèi)FLASH動(dòng)畫(huà)制作規(guī)范
- Flash CS3循環(huán)背景的運(yùn)用技巧
- Flash鼠繪技巧教你制作紅綠色的樹(shù)葉
Flash教程Rss訂閱網(wǎng)站制作教程搜索
Flash教程推薦
猜你也喜歡看這些
- 金鷹Flash ActionScript編程視頻教程 swf
- Adobe Flash CS5 新增功能課程
- flash動(dòng)作編程教程
- 北風(fēng)網(wǎng)web講師李炎恢老師網(wǎng)頁(yè)三劍客之flash從入門(mén)到精通59課時(shí)|已完結(jié)
- ttup flash視頻教程
- 精通Flash動(dòng)畫(huà)設(shè)計(jì)(附光盤(pán)腳本分鏡頭設(shè)計(jì)與典型案例)》
- 新東方任汝芬考研政治大綱解析班flash視頻及其他
- Flash CS3動(dòng)畫(huà)制作從新手到高手
- Flash CS3動(dòng)畫(huà)制作基礎(chǔ)與提高
- Flash as3.0視頻教程之組件編程
- 相關(guān)鏈接:
- 教程說(shuō)明:
Flash教程-HTML網(wǎng)頁(yè)與FLASH之間的“靜態(tài)”傳值。