好多朋友問過這個問題,為什么director 里關于save的命令有三個,這三個到底有什么不同,我該選擇哪一個來save我的文件?
其實回答這個問題還得先了解一點director的文件結構,一個director movie文件包含的主要信息是cast, 和score,cast含有所有電影所需的原始資源而score則負責控制電影的播放流程,可見cast 對文件的大小貢獻最大,對movie最后的整體表現影響也非常大。 通常多媒體開發人員都會考慮電影優化的問題,例如,導入優化過的圖形文件和視頻文件,不過更加常見的情形是導入了很多資源,實際上并沒有完全使用,還有就是導入時, 是按照開發者的需要來導入,并非是movie播放的需要,cast members在cast窗口里的位置和次序并不是呈現優化的狀態。 這些都是開發者需要解決的問題。頭一種情形,可以find unused members, 然后delete; 第二種情形就要用到下面的save and compact命令了。
save: 保存你所有自從上次save后的改變,改變的信息是加在原有的版本之上,換句話說,如果你一直不斷的save, 文件會越來越大,即使你刪除了某個cast member,然后save, 文件還是不會減小,適用于編輯狀態。 我常常告訴學生,ctrl + s是世界上最便宜的保險政策,作為一個職業的開發者,每五分鐘 ctrl + s一次,應該是下意識的舉動。
save as: 這個大家都知道,當你新保存一個文件的時候,用save as。不過對director來說,這個命令還意味著,保存文件之前,先優化文件,例如同樣是上面列舉的情形,刪除的cast members一定會在文件的大小上顯示出來。 這個命令執行后,通常還意味著,你有了兩個不同版本的movie文件。 有些情形下,director拒絕工作,save as, 再保存一次為新文件,就會為你解困。
save and compact: 這個指令和save as一樣,先優化,再保存,和save as 不同的是,保存后自動刪除舊文件,只留下最新的優化過的文件。對于shockwave 和 cd-rom的開發來說,這個指令的重要性是不言而喻的。publish as shockwave之前,必須執行一次save and compact。 而如果有什么意外發生,無法使用sava指令的時候,save and compact就成了不可或缺的救急措施。
最后簡單的介紹一下director文件優化的次序:
首先被寫入文件的是一個director文件的文件頭部分,也就是說將要首先載入ram的內容是關于cast, score的紀錄以及編譯好的lingo script, 這些內容通常會始終保留在ram中,而且占用的內存空間很小。
接下來就是真實的媒體內容,嵌入式的媒體cast members先載入,優化時,這些members按照他們在score窗口出現的先后次序重排,盡管你在cast 窗口沒有辦法看到重排的次序,但當你用save as 或 save and compact 的時候,它是實實在在的發生了,也就是說score中的第一個幀所需要的所有的cast members都會先被寫入文件。
最后director會檢查所有還沒有寫入的嵌入的媒體members, 這次是按照它們在cast 窗口里的次序寫入文件。 例如按鈕的over 和down 狀態的members, 他們通常是被lingo來調用而不是直接顯示在score窗口里的。 與此類似的情形還有puppetsound所調用的聲音members。
還有一個小竅門,如果你有一些cast libraries, 需要和你的項目里的多個movies都保持外部連接的方式,那你不必要每一個movie都使用sava and compact, 你可以使用菜單欄 xtras --> update movies, 選擇update movies, 這好像是一個save and compact 的批處理命令。
新聞熱點
疑難解答