全Flash動(dòng)畫網(wǎng)站的實(shí)現(xiàn)詳細(xì)教程
本人是設(shè)計(jì)出身,對(duì)語(yǔ)言根本不在行,但是做flash 站沒有一點(diǎn)as基礎(chǔ),什么效果也出不來,經(jīng)過一段時(shí)間的摸索,和若干業(yè)務(wù)的鍛煉,現(xiàn)在積累了一點(diǎn)經(jīng)驗(yàn),不敢獨(dú)享,把這些真正由實(shí)戰(zhàn)中得來的東西送給和我一樣對(duì)程序不在行設(shè)計(jì)師以及新手朋友。老鳥們請(qǐng)飄過。
在開始之前,我想說,做出一個(gè)優(yōu)秀的flash 站的重要前提是什么?我認(rèn)為首先是對(duì)美的理解再次是用戶界面的合理性,曾經(jīng)見過很多朋友做過的全站,充斥著各種動(dòng)態(tài)效果以及技術(shù)模塊,但是效果卻不盡如人意,看起來很有土洋結(jié)合的味道,同時(shí)也看過很多國(guó)外的源文件,我發(fā)現(xiàn)里面用到的技術(shù)并非非常復(fù)雜的as程序。連我都可以輕易看懂。但是無論是界面配色以及動(dòng)態(tài)效果都非常的不錯(cuò)??梢哉f一個(gè)flash 站是否有視覺沖擊力是它價(jià)值的首要體現(xiàn),而缺乏基本的美術(shù)功底,做出來的東西就必然缺乏美觀。所以我認(rèn)為,任何軟件或者技術(shù)都是為了實(shí)現(xiàn)目的而服務(wù)的,在我們努力學(xué)習(xí)as語(yǔ)言的同時(shí),也應(yīng)該不斷的加強(qiáng)自己的藝術(shù)修養(yǎng),而這個(gè)對(duì)美判斷的能力顯然需要比學(xué)任何計(jì)算機(jī)語(yǔ)言都要付出更多的時(shí)間去積累和沉淀。否則就算熟透as3,駕馭了air。我們同樣永遠(yuǎn)也做不出優(yōu)秀的作品,在文章末尾,再繼續(xù)探討。
好的,這里開始
一: flash網(wǎng)站的基本布局
一般來說,這個(gè)結(jié)構(gòu)是我最常用的flash全站結(jié)構(gòu),在flash中,我會(huì)根據(jù)不同的頁(yè)面元素進(jìn)行分類,然后分布在各個(gè)層中,并且起上相應(yīng)的名字,便于操作,在源文件中建議養(yǎng)成良好的命名習(xí)慣,通常一個(gè)全站在成型之前,這個(gè)文件,我們會(huì)對(duì)他操作n次,所以為了提高工作效率以及方便日后調(diào)用,良好的結(jié)構(gòu)非常重要。
如圖所示,as腳本層放置在最上方,頁(yè)面中的所有元素都根據(jù)實(shí)際的深度排列到相應(yīng)的層中。bg也就是頁(yè)面背景放置在最下方。
1:通常影片的場(chǎng)景大小,我設(shè)置成1600*1200,以適應(yīng)各種顯示器分辨率,幀率設(shè)置成30,根據(jù)需要也可以進(jìn)行調(diào)整。關(guān)于在瀏覽器中適應(yīng)瀏覽的問題,我放到最后說明。這里先放下。
2:loading通常放在第一幀,而且除了背景以外,并不安排其他元素在第一幀內(nèi),這樣可以保證第一幀的數(shù)據(jù)量很小。便于loading 動(dòng)畫的正確顯示。
3:每個(gè)大型的深層次mc,以及經(jīng)常需要切換到內(nèi)部的mc,比如頁(yè)面的mc,導(dǎo)航部分的mc,等等,我通常會(huì)在場(chǎng)景外做一個(gè)入口,也就是一個(gè)色塊,因?yàn)橛械膍c并非在內(nèi)部的第一幀就有內(nèi)容,在外層的時(shí)候他是空白的,所以為了便于操作,在內(nèi)部的第一幀建立一個(gè)色塊,便于隨時(shí)雙擊進(jìn)入操作。
4:不要把所有的動(dòng)畫和內(nèi)容都安排在主時(shí)間軸里,這樣的操作會(huì)讓你在以后的施工中非常的難于調(diào)整,甚至無法增添內(nèi)容。我認(rèn)為,應(yīng)該把內(nèi)容分成大類,然后相應(yīng)的做成原件,根據(jù)內(nèi)容的樹狀結(jié)構(gòu),相應(yīng)的安排mc的嵌套。然后在各個(gè)時(shí)間軸里,用寫在某個(gè)位置的as來控制各個(gè)時(shí)間軸的銜接。
比如mc1和mc2都是內(nèi)部有非常復(fù)雜動(dòng)畫的mc,我們要mc1動(dòng)畫完畢后開始mc2,這時(shí)候就不要把兩個(gè)mc的內(nèi)部動(dòng)畫放在一個(gè)時(shí)間軸內(nèi),最好是分別mc1,mc2各一幀,同時(shí)在mc1內(nèi)部的最后一幀上寫_parent.gotoandplay(mc2所在的幀)。
二:loading的制作
關(guān)于loading的制作,網(wǎng)上有的是教程,我只用一個(gè)最常用的做法,曾經(jīng)很多教程上介紹如果做一個(gè)精妙的loading云云,我從來都沒有深究,這段代碼,我在無數(shù)個(gè)老外的源文件中都看到,連其中沒有使用的進(jìn)度顯示文本代碼都一樣。。呵呵。。我的每個(gè)全站作品都是用的這個(gè),loading原件通常安排在主時(shí)間軸上,內(nèi)部的動(dòng)畫一定要打包成mc,呵呵,這個(gè)loading的內(nèi)部動(dòng)畫安排成100幀,形式可以隨意。只要是個(gè)100幀的動(dòng)畫就可以了。
三:有關(guān)于按鈕
其實(shí)flash 站80%的功能都是基于鼠標(biāo)事件來完成的,所以按鈕在網(wǎng)站中的地位不言而喻,在我理解一個(gè)flash全站無非就是通過一些按鈕的導(dǎo)向來播放不同位置的mc。
按鈕有兩種方式可以實(shí)現(xiàn)。一種是按鈕元件,一種是影片剪輯元件,這兩個(gè)原件中。按鈕只有4幀,而影片剪輯沒有限制,所以如果需要一個(gè)有動(dòng)畫效果的按鈕的時(shí)候,我們就只能用影片剪輯也就是mc來實(shí)現(xiàn)。事實(shí)上,我認(rèn)為,mc在大部分時(shí)間里都可以替代按鈕,通過腳本控制mc來實(shí)現(xiàn)按鈕的功能要比按鈕靈活的多。
這是一個(gè)最通常的動(dòng)畫按鈕的內(nèi)部結(jié)構(gòu)
新手提示:這里需要提示的是關(guān)于幀標(biāo)簽的概念:上圖中時(shí)間軸里標(biāo)注的s1與s2是幀標(biāo)簽,在幀的屬性欄里可以輸入,使用了幀標(biāo)簽可以用gotoAndPlay等等語(yǔ)句來播放該真標(biāo)簽所開始的位置,過了該幀標(biāo)簽的范圍后,不會(huì)停止哦~~。用幀標(biāo)簽的好處是你無需理會(huì)關(guān)鍵楨的數(shù)值,在任何地方播放這段動(dòng)畫,都可以含義明了的操作,并且容易解讀和記憶。
在這個(gè)按鈕mc所在的幀上(上圖的外層)寫上如下腳本,這個(gè)按鈕就生效了
[Copy to clipboard] [ - ] CODE: btn1.onRollOver=function(){btn1.gotoAndPlay"s1"};
btn1.onRollOut=function(){btn1.gotoAndPlay"s2"};
btn1.onRelease=function(){};
可以看出在用腳本對(duì)btn1按鈕添加了onRollOver,onRollOut,onRelease事件后,也就是經(jīng)過,離開,點(diǎn)擊,這個(gè)mc就擁有了一個(gè)按鈕的3種狀態(tài),至于點(diǎn)擊并不松手這種狀態(tài),通常并不常用,所以就沒有添加,如果需要的話,那么只需要在對(duì)應(yīng)的幀上寫onPress事件就可以了
需要注意的是:利用這樣的寫法來實(shí)現(xiàn)的按鈕,時(shí)間軸不能過長(zhǎng),也就是說,動(dòng)作效果不能動(dòng)畫太長(zhǎng),如果時(shí)間很長(zhǎng)的話,當(dāng)你的鼠標(biāo)劃過的時(shí)候,這個(gè)按鈕會(huì)執(zhí)行s2部分,而這么長(zhǎng)的動(dòng)畫,你并不是想要播放的,這個(gè)按鈕已經(jīng)可以說是一段用鼠標(biāo)事件激活的動(dòng)畫了,不該用鼠標(biāo)經(jīng)過這樣的事件來激活。
在全站中經(jīng)常有這樣的情況,即是很多按鈕都要實(shí)現(xiàn)類似或者同一種類的功能,那么一一寫onRollOver等等就太煩瑣了。
這時(shí)候我們就需要用循環(huán)的功能了,最開始,如果你看不懂,那么你并不需要去深究到底是怎么寫法,粘貼過去,然后去改你需要改的部分吧。
這里有5個(gè)按鈕,按鈕的名字是pm1,pm2---pm5,當(dāng)鼠標(biāo)經(jīng)過這些mc的時(shí)候,如果經(jīng)過的不是已經(jīng)點(diǎn)過的mc的話,就播放這個(gè)mc的“s1”部分,鼠標(biāo)離開的時(shí)候,滿足同樣條件就播放“s2”部分,點(diǎn)擊這個(gè)mc的話,上一個(gè)被點(diǎn)的mc播放"s2"部分(通常也就是回到初始的狀態(tài)),
[Copy to clipboard] [ - ] CODE: stop();
function rollover() {
if (_root.a != this.indexNum) {
this.gotoAndPlay("s1");
}
}
function rollout() {
if (_root.a != this.indexNum) {
this.gotoAndPlay("s2");
}
}
function release() {
this._parent["pm" _root.a].gotoAndPlay("s2");//上一個(gè)被點(diǎn)的按鈕執(zhí)行播放s2
_root.a = this.indexNum;
//上面的代碼順序不能錯(cuò)。代碼執(zhí)行也是有順序的,
//點(diǎn)擊后需要做的事情寫在這里。
}
for (var i:Number = 1; i<6; i ) {
this["pm" i].onRollOver = rollover;
this["pm" i].onRollOut = rollout;
this["pm" i].onRelease = release;
this["pm" i].indexNum = i;
}
這段代碼很簡(jiǎn)單,是as比較基礎(chǔ)的語(yǔ)句,關(guān)于for,以及if語(yǔ)句的用法,請(qǐng)自己在網(wǎng)上找,有的是。其實(shí),做flash 站,最常用的語(yǔ)句就是這兩個(gè),應(yīng)該理解透。新手朋友需要注意的是
if后面的條件要用==來判斷,如果只寫一個(gè)=,那么這個(gè)條件就永遠(yuǎn)都成立,因?yàn)?是賦值的意思,而==才是判斷,
這里的for (var i:Number = 1; i<6; i ) 部分,如果你有5個(gè)按鈕那么i<6,如果6個(gè)就i<7
需要非常重視的是這個(gè)東西_root.a,這是一個(gè)變量,我叫這個(gè)東西為“標(biāo)志位”,當(dāng)然也可以叫做_root.abcde,在這里利用這個(gè)_root.a=來記錄當(dāng)前鼠標(biāo)事件的對(duì)象,當(dāng)點(diǎn)了btn1的時(shí)候,這個(gè)_root.a=1,_root在as里是頂級(jí)的位置,我們寫_root.a=1就是表明在主時(shí)間軸建立一個(gè)變量值為1,之所以用頂級(jí)位置,就是因?yàn)檎{(diào)用起來簡(jiǎn)單,方便,在任何地方都可以用,這里涉及到路徑和層級(jí)的知識(shí),稍后說明。。。。。總之在我們需要記錄一個(gè)數(shù)據(jù),比如頁(yè)數(shù),比如按鈕序號(hào),等等的時(shí)候,這個(gè)“標(biāo)志位”使用起來是很方便的。在下面我們還會(huì)用到。
另外一個(gè)推薦熟悉的部分是movieClipTween這個(gè)功能擴(kuò)展,這個(gè)類,或者這個(gè)方法,簡(jiǎn)單的說就是用腳本而不是 用時(shí)間軸來安排動(dòng)畫,在很多時(shí)候,我們?nèi)绻媚_本的方式來實(shí)現(xiàn)一些mc的交互會(huì)更加方便,同時(shí)更加靈活,這樣做的好處是,比如你需要一些按鈕,你并不需要為每一個(gè)按鈕安排時(shí)間軸和建立關(guān)鍵楨,所有動(dòng)作都用腳本生成。而且很直觀,我不是很會(huì)形容這個(gè)的好處,但是相信沒有用過的朋友們一定會(huì)習(xí)慣并且喜歡這種動(dòng)畫創(chuàng)作方式。下圖為例:
具體的腳本如上所示。
需要知道的是,這個(gè)擴(kuò)展的功能并非flash安裝后自帶的,你需要下載這個(gè)后綴名為mxp的擴(kuò)展包,安裝需要有extention manager這是adobe公司的免費(fèi)軟件,如果你安裝了dw9就同時(shí)安裝了。。安裝之后,參數(shù)的使用方法非常簡(jiǎn)單,在flash的幫助文檔里會(huì)添加出相關(guān)的項(xiàng)目,雖然是英文的,但是也非常易懂。
四:flash全站的頁(yè)面切換
在傳統(tǒng)的html站里,我們通過點(diǎn)擊超鏈接來打開另外的一個(gè)html,在flash 站里,我們當(dāng)然也可以打開另外一個(gè)html頁(yè)面,但是缺少了動(dòng)畫的翻頁(yè)就失去了動(dòng)態(tài)效果,所以,在flash全站里,通常都會(huì)有比較動(dòng)感的動(dòng)畫部分來銜接兩個(gè)頁(yè)面,也就是說點(diǎn)擊鏈接后,運(yùn)行一個(gè)動(dòng)畫,然后動(dòng)畫完畢后,新的頁(yè)面也呈現(xiàn)出來了。
這里有個(gè)示例網(wǎng)站http://www.platina-design.com,這是我剛學(xué)flash早期的一個(gè)主頁(yè),一直還沒空完成。
在實(shí)現(xiàn)這樣的效果,我們有非常多的辦法,這里我比較常用的是這一種,結(jié)構(gòu)是這樣的,很簡(jiǎn)單
如圖可以看到,翻頁(yè)動(dòng)畫層在頁(yè)面內(nèi)容層之上,最上方是腳本層,把腳本寫在最上方的層里,是比較好的做法,在網(wǎng)站進(jìn)入后,開始播放頁(yè)面的mc,這mc的第一幀也就是上圖中的第一幀,根據(jù)需要,我們可以寫上一個(gè)stop(),頁(yè)面內(nèi)容被播放,當(dāng)首頁(yè)上的導(dǎo)航按鈕點(diǎn)擊后,導(dǎo)航按鈕內(nèi)安排了腳本:pages.gotoAndPlay("start"),這時(shí)候,從第二幀開始的翻頁(yè)動(dòng)畫mc開始播放,當(dāng)播放到開始露出下面頁(yè)面的時(shí)候,在時(shí)間軸上的相應(yīng)幀上安排腳本:page.gotoAndPlay(_root.a)這里的_root.a是按鈕點(diǎn)擊時(shí)候被賦值的,也就是說,如果我點(diǎn)了按扭2.那么這時(shí)候,頁(yè)面就切換到第二幀,點(diǎn)擊3播放page的第三幀。最后停止,不要忘記寫stop()在時(shí)間軸的最后,
如圖所示頁(yè)面的部分做成一個(gè)大mc,里面每一個(gè)頁(yè)面做成一個(gè)mc放在一幀內(nèi),這樣就對(duì)應(yīng)了每個(gè)導(dǎo)航按鈕的點(diǎn)擊。在每個(gè)頁(yè)面mc切換前,播放了翻頁(yè)動(dòng)畫,在翻頁(yè)動(dòng)畫過程中進(jìn)行了換幀,于是,我們的目的就達(dá)到了。
這個(gè)功能實(shí)現(xiàn)的方法是很簡(jiǎn)單的,但是基礎(chǔ)的方法是比較通用的,我們?cè)诓殚喓芏鄧?guó)外的flash全站源文件的時(shí)候,都會(huì)發(fā)現(xiàn)類似的方式,通過換幀來達(dá)到換頁(yè)的方法,也是flash全站的一個(gè)比較通常的方法,當(dāng)然還有其他的辦法來實(shí)現(xiàn),但是這個(gè)基本的方法還是值得新手朋友們掌握的。
五:文本內(nèi)容的顯示
任何網(wǎng)站中都要有文字,flash網(wǎng)站中的文字,我們?cè)谥谱鞯臅r(shí)候有3中選擇,一種是靜態(tài)文本,一種是動(dòng)態(tài)文本,一種是輸入文本,靜態(tài)文本可以使用任何字體,在發(fā)布后,瀏覽者可以看到你源文件中使用的文本,在網(wǎng)站中不需要經(jīng)常更新的部分,大可用靜態(tài)文本來寫,因?yàn)椴恍枰獮g覽者也擁有你的字體,所以,很方便你對(duì)頁(yè)面所做的美工。
動(dòng)態(tài)文本,通常用來顯示后臺(tái)程序所提供的文本內(nèi)容,或者flash中動(dòng)態(tài)生成的文字,比如建立一個(gè)空白的動(dòng)態(tài)文本,id名起為mytext,那么在他的所在幀上寫如下腳本就可以讓他顯示出指定的文字
mytext.text="我傻,但我不流哈喇子"
發(fā)布后,這個(gè)文本框就會(huì)顯示出相應(yīng)的文字,因?yàn)槭莿?dòng)態(tài)文本,所以通常在我們需要他的場(chǎng)合都是例如留言本,新聞發(fā)布等需要經(jīng)常更新和變化的部分。所以如何動(dòng)態(tài)的讀入文字就是動(dòng)態(tài)文本使用的目的。
如果你的工作伙伴中有程序員,那么你可以要求他的后臺(tái)給你傳遞一個(gè)xml文件,然后你在flash端讓你的動(dòng)態(tài)文本顯示這段xml,你的flash就擁有了相應(yīng)后臺(tái)的數(shù)據(jù)功能,
不過,這里暫時(shí)并不詳細(xì)的介紹flash 與后臺(tái)交互,因?yàn)檫@并不是我的教程這一部分該介紹的東西,這篇文章是基礎(chǔ)向的,希望能給和我一樣的設(shè)計(jì)師朋友和新手朋友提供既沾即用的腳本,所以下面就只提供一段從服務(wù)器端讀入文本文檔的方法,以及通過判斷密碼是否正確的部分,
System.useCodepage = true;
var Txtload= new LoadVars();
Txtload.onLoad = function(success) {
if (success) {
mytxt.text = Txtload.neirong
} else {
//做點(diǎn)什么
}
};
Txtload.load("test.txt")
給動(dòng)態(tài)文本框的id設(shè)置為mytxt
下面在你的swf同文件夾下建立一個(gè)文本文檔test.txt,里面寫neirong=加上你要顯示的文字就可以了。
判斷密碼:


如上圖所示,通過if判斷輸入文本的內(nèi)容:if (txt.text==“你的密碼”){做點(diǎn)什么事情,比如說換幀,或者播放某個(gè)mc,等等}else{干點(diǎn)什么}
這樣的密碼判斷,并不需要后臺(tái)程序的支持,非常的易于實(shí)現(xiàn),通過字符串判斷,我們可以實(shí)現(xiàn)后臺(tái)管理的密碼登錄等實(shí)際上是靜態(tài)的功能。
以上圖片演示地址,這個(gè)是業(yè)余時(shí)間做的一個(gè)玩具h(yuǎn)ttp://www.shengmeixing.com/cia/index.html
需要注意的技巧是如果你的動(dòng)態(tài)文本,包括輸入文本如果需要覆蓋遮罩效果的話,直接用遮罩層放在上方的辦法不可以,需要為該文本添加濾鏡的效果,才可以實(shí)現(xiàn),為了不影響文本的顯示,請(qǐng)將濾鏡參數(shù)調(diào)整為0.另外的辦法是把文本轉(zhuǎn)換成mc并且用添加腳本setmask的方式實(shí)現(xiàn)。
六:音樂開關(guān)
音樂文件通常是mp3格式,導(dǎo)入到庫(kù)中后,可以直接在需要的幀上選擇插入聲音對(duì)象,如果全站只有一首背景音樂的話,那么通常不用創(chuàng)建聲音對(duì)象,直接在關(guān)鍵楨屬性中選擇聲音就可以了,在影片的主時(shí)間軸上建立一個(gè)開關(guān)mc。就可以控制背景音樂的開關(guān)。當(dāng)然也可以控制音量,但是我認(rèn)為通常情況下,我們并不需要控制印量大小,對(duì)于網(wǎng)站來說,我們更多的時(shí)候只是需要選擇開或者關(guān)就夠了。。
建立一個(gè)mc,位置最好在根時(shí)間軸內(nèi),因?yàn)楸阌诓僮鳎瑫r(shí)結(jié)構(gòu)合理,在mc內(nèi)部建立一個(gè)mc,里面做好開關(guān)狀態(tài)的外觀分別放置在兩幀,不要忘記寫stop(),在這個(gè)mc對(duì)應(yīng)的幀上寫下如下腳本
[Copy to clipboard] [ - ] CODE: _root.soundstatus=="on"
onLoad=function()
{
_root.soundstatus="on";
_root.mySound = new Sound(_level0);
_root.mySound2 = new Sound(_level1);
_root.mySound3 = new Sound(_level2);
_root.mySound4 = new Sound(_level3);
_root.mySound5 = new Sound(_level4);
maxvolume=100;
minvolume=0;
}
onEnterFrame=function()
{
if(_root.soundstatus=="on") {step=5}
if(_root.soundstatus=="off") {step=-5}
maxvolume =step;
if (maxvolume>100) {maxvolume=100;}
if (maxvolume<0) {maxvolume=0;}
_root.mySound.setVolume(maxvolume);
_root.mySound2.setVolume(maxvolume);
_root.mySound3.setVolume(maxvolume);
_root.mySound4.setVolume(maxvolume);
_root.mySound5.setVolume(maxvolume);
}
music_btn.onRelease=function(){
if(_root.soundstatus=="on"){
_root.soundstatus=="off"
music_btn.gotoAndPlay(2)
}else{
_root.soundstatus=="on"
music_btn.gotoAndPlay(1)
}
}
這段腳本會(huì)在點(diǎn)擊開關(guān)按鈕后,音量濺出至沒有,再次點(diǎn)擊后,音量漸入至100%原理非常簡(jiǎn)單,這里不再詳解,新手朋友請(qǐng)咨詢查閱相關(guān)資料,這里用了一個(gè)標(biāo)志位(_root.soundstatus)用來記錄開關(guān)按鈕的狀態(tài).在使用的時(shí)候?qū)⒁陨夏_本相應(yīng)的復(fù)制到你的mc里,音量開關(guān)就可以實(shí)現(xiàn)了。
如果你的網(wǎng)站有多段背景音樂的話,那么這時(shí),你就不可以在時(shí)間軸內(nèi)調(diào)用背景音樂了,你可以在主時(shí)間軸里的幀里定義你的聲音,這樣在需要他播放或者停止的時(shí)候,你就
可以隨時(shí)控制了。下面的寫法可以作為參考。這里mainsound是一個(gè)音樂,pagesound是另外一個(gè)音樂,根據(jù)我的需要,需要在不同頁(yè)面播放不同的音樂。
[Copy to clipboard] [ - ] CODE: _root.mainsound = new Sound();
_root.mainsound.attachSound("yoursound");
_root.pagesound = new Sound();
_root.pagesound.attachSound("pagesound");
_root.pagesound.stop();//pagesound停止播放
_root.mainsound.start(0,99);//mainsound在0秒后播放99遍
如上的代碼當(dāng)然也可以根據(jù)你的需要來定義n個(gè)聲音,控制播放和停止的部分可以定義該聲音之后的任何地方調(diào)用。
需要注意的是:創(chuàng)建聲音對(duì)象的時(shí)候,我用的是attach命令,也就是說,這個(gè)聲音文件已經(jīng)包含在我的swf中的庫(kù)里了。這里這樣做會(huì)增加swf的體積,但是可以保證聲音的同步,也就是在你需要播放他的時(shí)候馬上播放,這個(gè)對(duì)于flash網(wǎng)站來說是很重要的,如果并不需要同步,那么我們大可用loadSound語(yǔ)句,這樣還可以減小swf的體積,將聲音文件放在外部,通過相對(duì)或者絕對(duì)路徑來訪問他。
在使用attach語(yǔ)句來調(diào)用聲音文件的時(shí)候,該聲音文件需要有id,這個(gè)id在庫(kù)面板中進(jìn)行設(shè)定,并且設(shè)置成在第一幀導(dǎo)出,才可以訪問的到,也就是說在調(diào)用語(yǔ)句所在的幀播放的同時(shí),該聲音文件一定要已經(jīng)讀取完畢,才可以attach。如果在attach的同時(shí),沒有讀入該文件或者,沒有讀取完畢的話,是不能引用得到的,這樣就會(huì)造成播放失敗。
不過這時(shí)候會(huì)造成一個(gè)問題,就是由于音樂文件在第一幀導(dǎo)出,所以會(huì)增大第一幀的體積,而loading是第一幀,這樣loading就會(huì)出現(xiàn)許久也沒有顯示進(jìn)度的問題。所以為了既不在第一幀導(dǎo)入,也不影響attach,我用這樣的方法解決,這也許不是最好的辦法,只是我一直這樣用,如果那位兄弟有更官方的方法,請(qǐng)告知。
如圖所示,這樣,該聲音文件在第二幀加載,同時(shí)不會(huì)自動(dòng)播放,不占用第一幀的體積,同時(shí)也可以保證引用的順利,不要忘記去掉聲音文件linkage的“在第一幀導(dǎo)出”選項(xiàng)。
七:flash的調(diào)試與常見問題。
ctrl 回車我們每做一個(gè)全站都不知道要按幾百遍,在預(yù)覽的窗口中的view-bandwidth profiler選項(xiàng),點(diǎn)擊后可以查看影片的一些基本數(shù)據(jù),比如體積,幀數(shù),等等,其中影片尺寸在調(diào)試中,我們應(yīng)當(dāng)時(shí)刻注意體積的變化,以提早發(fā)現(xiàn)異常的體積變化,同時(shí)窗口中,還可以查看每一幀的體積,我們尤其應(yīng)該注意第一幀的體積,如果體積超過100k,那么就應(yīng)該找原因了,因?yàn)檫@樣有可能造成loading失效。另外模擬下載的選項(xiàng)也可以測(cè)試loading。download setting選項(xiàng)中,我們可以選擇模擬下載的帶寬。道理很簡(jiǎn)單,不再?gòu)?fù)述。
常見問題:
發(fā)布的時(shí)候,發(fā)現(xiàn)loading完全沒有出現(xiàn),而后面的網(wǎng)頁(yè)也斷斷續(xù)續(xù)的,那么應(yīng)該是你的主時(shí)間軸,忘記了寫上一個(gè)stop()。呵呵
發(fā)布的時(shí)候,發(fā)現(xiàn)loading已經(jīng)過了大半才出現(xiàn),那么說明你第一幀的數(shù)據(jù)體積過大,減肥他。
如果在發(fā)布的時(shí)候發(fā)現(xiàn)編譯速度非常慢,并且最后影片的體積超過了地球人理解的范圍,比如幾十兆大,那么非常有可能是影片中的動(dòng)態(tài)文本嵌入了字體,如果沒有有意嵌入字體的話,就要把字體屬性中的embed選項(xiàng)打開,然后將里面嵌入的部分完全去掉,就可以解決這個(gè)問題。我當(dāng)初曾經(jīng)為了這個(gè)瘋狂過,最終,用一半排除法找到了這個(gè)原因。(也就是先刪除前一半幀,查看體積,沒有變化再刪除后一半,呵呵,如果還沒有變化,那就出鬼了)
其實(shí)中文網(wǎng)站嵌入字體的用處并不大,因?yàn)橐粋€(gè)中文字體,一般都3兆左右,體積太大,而英文網(wǎng)站就相對(duì)好很多,動(dòng)態(tài)文本完全可以嵌入一個(gè)美術(shù)字體來實(shí)現(xiàn)效果,不過嵌入字體有個(gè)作用就是控制輸入的字符類型,比如一個(gè)輸入文本是輸入電話號(hào)碼的,那么只嵌入數(shù)字字體的話,那么這個(gè)文本框就只可以輸入數(shù)字類型的字符。
今天到這里。。。休息。。打字一天很累。。本教程幀的很基礎(chǔ),很簡(jiǎn)單,甚至有些地方不是很對(duì),請(qǐng)高手指出,本人也不是as高手,我只是個(gè)設(shè)計(jì)師,或者用美工這個(gè)蔑稱來形容也沒關(guān)系。
下面陸續(xù)要說的將會(huì)有,關(guān)于影片在瀏覽器顯示的問題,元件在場(chǎng)景中定位的問題,swf的html寫法的一些經(jīng)驗(yàn),flash網(wǎng)站如何對(duì)搜索引擎友好的部分,關(guān)于有后臺(tái)支持的flash網(wǎng)站數(shù)據(jù)誤緩存的問題。等等。新手同胞們。你們的回復(fù)是我的最大動(dòng)力。
相關(guān)文章

flash如何制作形狀補(bǔ)間動(dòng)畫?flash創(chuàng)建補(bǔ)間形狀技巧
flash一款功能強(qiáng)大的動(dòng)畫制作軟件,制作動(dòng)畫很非常的方便,但動(dòng)畫過程使用的都是形狀補(bǔ)間功能。今天小編就來給大家介紹一下flash形狀補(bǔ)間動(dòng)畫制作方法,感興趣的快來看看吧2022-05-11
flash cs6怎么做花朵成長(zhǎng)的逐幀動(dòng)畫?
flash cs6怎么做花朵成長(zhǎng)的逐幀動(dòng)畫?flash中想要繪制一個(gè)花開的動(dòng)畫,該怎么畫出各個(gè)圖形然后做逐幀動(dòng)畫呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2021-03-09
Flash怎么將動(dòng)畫復(fù)制為ActionScript3.0并使用?
Flash怎么將動(dòng)畫復(fù)制為ActionScript3.0并使用?Flash中制作的動(dòng)畫想要直接粘貼到另一個(gè)對(duì)象中,我們可以使用復(fù)制腳本代碼的方式復(fù)制動(dòng)畫,下面我們就來看看詳細(xì)的教程,需2017-12-08
flash怎么制作漫畫人物行走的動(dòng)畫?flash中想要制作一段行走的動(dòng)畫,該怎么設(shè)計(jì)呢?下面我們就來看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-04-18- 這篇教程是向腳本之家的朋友分享flash逐幀動(dòng)畫制作全過程,教程非?;A(chǔ),很適合新手來學(xué)習(xí),推薦過來,有興趣的朋友可以過來學(xué)習(xí)2016-01-15
- 下面小編就為大家介紹利用Flash正確的口型吻合動(dòng)畫技巧,教程很不錯(cuò),非常適合新手來學(xué)習(xí),推薦到腳本之家,喜歡的朋友一起來學(xué)習(xí)吧2015-01-15
Flash動(dòng)畫制作技巧 圖形元件相關(guān)知識(shí)介紹
這篇教程是向腳本之家的朋友介紹Flash動(dòng)畫制作技巧:圖形元件相關(guān)知識(shí),教程很基礎(chǔ),但很實(shí)用,推薦到腳本之家,喜歡的朋友可以過來學(xué)習(xí)一下,希望能對(duì)大家有所幫助2015-01-05Flash動(dòng)畫制作小黑人經(jīng)典動(dòng)畫效果技巧介紹(圖文)
本教程是向大家介紹Flash動(dòng)畫制作小黑人經(jīng)典動(dòng)畫效果技巧,教程很經(jīng)典,介紹的非常詳細(xì),相信對(duì)學(xué)習(xí)Flash朋友有一定的幫助。轉(zhuǎn)發(fā)過來,希望對(duì)大家有所幫助2014-08-05Flash制作旋轉(zhuǎn)的3D立體盒動(dòng)畫教程
本教程是向大家介紹利用Flash制作旋轉(zhuǎn)的3D立體盒動(dòng)畫教程,制作出來的效果非常好看,教程介紹的很詳細(xì),希望大家通過本篇教程能學(xué)習(xí)Flash制作3D動(dòng)畫的方法,這樣以后就可以2014-07-22- 本教程向大家介紹了Flash cs3制作人物行走動(dòng)畫技巧,并做了詳細(xì)的介紹,覺得教程很不錯(cuò),轉(zhuǎn)發(fā)過來,希望給朋友們帶來幫助2014-07-15




