Director 里save , save as 和 save and compact 的區(qū)別
好多朋友問(wèn)過(guò)這個(gè)問(wèn)題,為什么director 里關(guān)于save的命令有三個(gè),這三個(gè)到底有什么不同,我該選擇哪一個(gè)來(lái)save我的文件?
其實(shí)回答這個(gè)問(wèn)題還得先了解一點(diǎn)director的文件結(jié)構(gòu),一個(gè)Director movie文件包含的主要信息是cast, 和score,cast含有所有電影所需的原始資源而score則負(fù)責(zé)控制電影的播放流程,可見(jiàn)cast 對(duì)文件的大小貢獻(xiàn)最大,對(duì)movie最后的整體表現(xiàn)影響也非常大。 通常多媒體開(kāi)發(fā)人員都會(huì)考慮電影優(yōu)化的問(wèn)題,例如,導(dǎo)入優(yōu)化過(guò)的圖形文件和視頻文件,不過(guò)更加常見(jiàn)的情形是導(dǎo)入了很多資源,實(shí)際上并沒(méi)有完全使用,還有就是導(dǎo)入時(shí), 是按照開(kāi)發(fā)者的需要來(lái)導(dǎo)入,并非是movie播放的需要,cast members在cast窗口里的位置和次序并不是呈現(xiàn)優(yōu)化的狀態(tài)。 這些都是開(kāi)發(fā)者需要解決的問(wèn)題。頭一種情形,可以find unused members, 然后delete; 第二種情形就要用到下面的save and compact命令了。
save: 保存你所有自從上次save后的改變,改變的信息是加在原有的版本之上,換句話(huà)說(shuō),如果你一直不斷的save, 文件會(huì)越來(lái)越大,即使你刪除了某個(gè)cast member,然后save, 文件還是不會(huì)減小,適用于編輯狀態(tài)。 我常常告訴學(xué)生,ctrl + S是世界上最便宜的保險(xiǎn)政策,作為一個(gè)職業(yè)的開(kāi)發(fā)者,每五分鐘 ctrl + S一次,應(yīng)該是下意識(shí)的舉動(dòng)。
save as: 這個(gè)大家都知道,當(dāng)你新保存一個(gè)文件的時(shí)候,用save as。不過(guò)對(duì)director來(lái)說(shuō),這個(gè)命令還意味著,保存文件之前,先優(yōu)化文件,例如同樣是上面列舉的情形,刪除的cast members一定會(huì)在文件的大小上顯示出來(lái)。 這個(gè)命令執(zhí)行后,通常還意味著,你有了兩個(gè)不同版本的movie文件。 有些情形下,director拒絕工作,save as, 再保存一次為新文件,就會(huì)為你解困。
save and compact: 這個(gè)指令和save as一樣,先優(yōu)化,再保存,和save as 不同的是,保存后自動(dòng)刪除舊文件,只留下最新的優(yōu)化過(guò)的文件。對(duì)于shockwave 和 CD-ROM的開(kāi)發(fā)來(lái)說(shuō),這個(gè)指令的重要性是不言而喻的。publish as shockwave之前,必須執(zhí)行一次save and compact。 而如果有什么意外發(fā)生,無(wú)法使用sava指令的時(shí)候,save and compact就成了不可或缺的救急措施。
最后簡(jiǎn)單的介紹一下director文件優(yōu)化的次序:
首先被寫(xiě)入文件的是一個(gè)director文件的文件頭部分,也就是說(shuō)將要首先載入RAM的內(nèi)容是關(guān)于cast, score的紀(jì)錄以及編譯好的lingo script, 這些內(nèi)容通常會(huì)始終保留在RAM中,而且占用的內(nèi)存空間很小。
接下來(lái)就是真實(shí)的媒體內(nèi)容,嵌入式的媒體cast members先載入,優(yōu)化時(shí),這些members按照他們?cè)趕core窗口出現(xiàn)的先后次序重排,盡管你在cast 窗口沒(méi)有辦法看到重排的次序,但當(dāng)你用save as 或 save and compact 的時(shí)候,它是實(shí)實(shí)在在的發(fā)生了,也就是說(shuō)score中的第一個(gè)幀所需要的所有的cast members都會(huì)先被寫(xiě)入文件。
最后director會(huì)檢查所有還沒(méi)有寫(xiě)入的嵌入的媒體members, 這次是按照它們?cè)赾ast 窗口里的次序?qū)懭胛募?例如按鈕的over 和down 狀態(tài)的members, 他們通常是被lingo來(lái)調(diào)用而不是直接顯示在score窗口里的。 與此類(lèi)似的情形還有puppetSound所調(diào)用的聲音members。
還有一個(gè)小竅門(mén),如果你有一些cast libraries, 需要和你的項(xiàng)目里的多個(gè)movies都保持外部連接的方式,那你不必要每一個(gè)movie都使用sava and compact, 你可以使用菜單欄 Xtras --> update movies, 選擇update movies, 這好像是一個(gè)save and compact 的批處理命令。
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
◎進(jìn)入論壇Flash專(zhuān)欄版塊參加討論
|