欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

HTML網(wǎng)頁(yè)與FLASH之間的“靜態(tài)”傳值_Flash教程

編輯Tag賺U幣
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!

推薦: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à)不多了,看教程吧.

/所屬分類(lèi):Flash教程/更新時(shí)間:2008-03-05
相關(guān)Flash教程