director 可以說是多媒體界最主流的著作工具,國內(nèi)從事多媒體編程的人也大多數(shù)使用該軟件。但是很可惜的是它的易用性使得很大一部分人在較低的層次上用它制作多媒體作品。我覺得全世界的 director 制作人員大概按創(chuàng)作方式可分為三類:
1:art director: 這些人大多數(shù)是美術(shù)人員,不懂得編程。所以他們使用 director 的方式就是采用時(shí)間線作動(dòng)畫的方式,他們的作品可能包含成百上千幀,完全是二維動(dòng)畫的制作方法,可能有一些簡(jiǎn)單的交互(可以使用 behavior 實(shí)現(xiàn))。
2:computer programer: 這些人原先就是某一類程序員,他們精通 c,c++ 語言,轉(zhuǎn)到 director 編程大多是沖著 director 的 編程語言 lingo 來的。他們的制作方式就是 使用 lingo ,你很少在他們的作品中看見很多幀, 通常只有很少幾個(gè)幀 ,有時(shí)候就是單幀。但是他們寫的 lingo 代碼可能有 成千上萬行。
3:multimedia producer: 就是以上兩種人的結(jié)合。
國內(nèi)的情況很特殊,大多數(shù)人是屬于第一類的。第二類的人很少(因?yàn)榇蠖鄶?shù)程序員不喜歡太高級(jí)的 script 語言編程)。director 使用的好壞很大程度上取決于 lingo 語言的掌握,但是作品制作的好壞卻取決于創(chuàng)意和美術(shù)制作。所以將來的多媒體創(chuàng)作其實(shí)更多需要第三類人。 這就要求美術(shù)人員要懂得更多的 director 技術(shù)方面知識(shí)。在此根據(jù)我解決 director 制作中所碰到的問題的經(jīng)驗(yàn),給大家常見的問題作一個(gè)解答。
問題1:為什么 director 總是報(bào)告“where is ......” (找不到鏈接的媒體文件,如 mov, wav 文件)
解答:
很多人以連接方式導(dǎo)入的媒體文件(例如 quicktime ,wav,aiff,avi 等文件)在變換了路徑后會(huì)出現(xiàn)找不到媒體文件的情況。
解決方法很簡(jiǎn)單,那就是使用 the searchpaths 這個(gè)系統(tǒng)屬性列表。
the searchpaths 告訴 director 到那里去找媒體文件。通常我們將媒體文件以一種層次結(jié)構(gòu)方式組織在光盤上,例如 projector 文件放在光盤的根目錄下,而聲音文件放在 sounds 目錄下,視頻文件放在 video 目錄下。
當(dāng) director 加載媒體文件的時(shí)候,它會(huì)首先查看媒體文件最初的連接地址,如果沒有找到該文件,它會(huì)接著在電影文件的當(dāng)前目錄下查找該媒體文件,如果還是沒有找到,它就遍歷 the searchpaths 中的所有路徑。the searchpaths 中的每一個(gè)項(xiàng)目就是一個(gè)路徑。
因此解決方法就是在每個(gè) director 電影文件的 movie script 中加入這個(gè) handle
on startmovie
append the searchpaths, the moviepath & "video"
append the searchpaths, the moviepath & "sounds"
end
the moviepath 返回當(dāng)前電影文件的路徑名,例如如果光盤是 d 盤,電影文件放在光盤的根目錄下,那么 the moviepath 就返回 d:/, the moviepath 和 "video" 結(jié)合就成了 d:/video,將合并后的路徑通過 append 附加在 the searchpaths 后,director 就知道到什么地方查找該文件了。
問題2:我希望 director 電影文件放在硬盤上(考慮到速度問題),而媒體文件放在光盤上,我該如何作?
解答:
這種做法在國外是很普遍的,因?yàn)?director 制作的文件通常都非常龐大,打包后的文件 2-3 兆是很普通的事情,但是放在光盤上運(yùn)行的確很慢。國內(nèi)制作的光盤大多數(shù)將電影文件放在光盤上,再在光盤的根目錄下放一個(gè) autorun.inf ,當(dāng)用戶插入光盤后(通常是噩夢(mèng)的開始),就進(jìn)入 director 電影文件的漫長(zhǎng)的加載過程。因此國外的這種做法很值得推薦,但是并不是所有人都喜歡這種做法,因?yàn)樗枰谱饕粋€(gè)安裝程序?qū)irector 電影文件安裝到用戶的硬盤上,對(duì)于用戶來說,這種做法不如 autorun 直接。
解決方法同樣涉及上面的路徑問題,只是你必須將判斷用戶的光驅(qū)符號(hào),然后將它和子目錄結(jié)合為新路徑。然后附加到 the searchpaths 屬性列表。
具體做法如下:
1:在你的光盤中放入一個(gè)很特殊的文件(名字盡量不會(huì)和很可能出現(xiàn)在任何盤的根目錄下的文件重名)
比如你公司的名字,(mycorporation.txt)
2: 編寫判斷光驅(qū)盤符號(hào)的函數(shù)
具體函數(shù)如下:
on checkdrive uniquefile
repeat with i = 67 to 90 -- 字母 a 到 z 的循環(huán)
set drive = numtochar( i ) -- 將 a 到 z 的 ascii 碼轉(zhuǎn)換為字符
set thispath = string(drive & ":/"& uniquefile)
set myfile = new(xtra "fileio") -- 創(chuàng)建 fileio xtra 的實(shí)例
openfile(myfile, thispath, 1) -- 打開指定的文件
if status(myfile) = 0 then -- 如果打開文件成功返回 0
set myfile = 0 -- 從內(nèi)存中刪除該實(shí)例的指針并返回 drive&":"
exit
end if
end repeat
set myfile = 0 -- 從內(nèi)存中刪除該實(shí)例的指針
alert "請(qǐng)插入正確的光盤"
end
3:編寫你的 movie script 腳本
on startmovie
mycd = checkdrive("mycorporaion.txt")
append the searchpath, mycd & "/video"
append the searchpath, mycd & "/sounds"
end
這樣你就可以將光盤上放置媒體文件,而把 director 電影文件放在硬盤上,而不必?fù)?dān)心會(huì)出現(xiàn)問題了。
問題3: 如何在 director 中使用 pdf 文檔?
解答:
這個(gè)問題的解決方法涉及將來很多類似問題的解決,那就是如何在 director 中使用 active x 的技術(shù)。很奇怪的是這種技術(shù)在 director 中的使用并不多,似乎沒有受到重視。我最近在我制作的一張光盤中使用了這種技術(shù)。實(shí)際證明這種技術(shù)很有效。當(dāng)然你得在程序的開頭編寫提示用戶安裝acrobat reader 的代碼)
director 很多功能需要通過購買第三方的 xtra 實(shí)現(xiàn),通常這些 xtra 都很貴。比如使用 pdf xtra.但是避開購買 pdf 的 xtra ,通過使用 active x,你完全可以將 acrobat reader 的所有功能集成到 director 中來,因?yàn)槊赓M(fèi)發(fā)放的 acrobat reader 中包含了一個(gè) active x 控件。在安裝完畢后這個(gè)控件自動(dòng)注冊(cè)。
具體解決方法如下:
1:安裝 acrobat reader(為了自動(dòng)注冊(cè) acrobat reader active x 控件)。
2:在 director 中將 acrobat reader active x 控件。
選擇 insert >control >activex.
然后在出現(xiàn)的對(duì)話框中選擇 “acrobat control for activex"。
單擊 ok 按鈕后會(huì)進(jìn)入第二個(gè) acrobat reader active x 屬性對(duì)話框
它的第一個(gè)屬性是 src。
如果你知道 pdf 文件的路徑可以直接在該對(duì)話框中指定。它是絕對(duì)路徑,在此控件的src屬性中不能指定相對(duì)路徑。單擊 ok 按鈕后則關(guān)閉屬性對(duì)話框,這個(gè)時(shí)候你已經(jīng)將 activex 控件插入到 cast 角色庫中,將這個(gè)剛剛插入的 activex 控件從角色庫中拖放到舞臺(tái)上。你可以盡量拉伸這個(gè) sprite 到你希望的大小。
如果當(dāng)前的 director 電影出于播放狀態(tài),你就會(huì)看到你指定的 pdf 出現(xiàn)在舞臺(tái)上。是不是很簡(jiǎn)單。
但是這種方法不實(shí)用,除非你用硬盤播放你的演示程序。通常我們希望使用相對(duì)路徑(相對(duì)電影文件所在的目錄下的子目錄中放置 pdf 文檔)。那么你不比在此控件的src屬性中設(shè)置任何參數(shù)。你可以使用 lingo 設(shè)置該控件的src屬性。具體程序如下
在 mouseup 或 enterframe 等句柄中編寫如下的程序。
on mouseup me
sprite(1).src = the moviepath & "mypdf.pdf" --假設(shè) acrobat 控件放在 1 通道中
end
on exitframe me
sprite(1).src = the moviepath & "mypdf.pdf"
end
將如上的句柄放在acrobat 控件所在 sprite 的 sprite 腳本中。
問題四:如何在 director 中播放 mpeg 文件?
解答:
在 director 中播放 mpeg 文件的方法主要有三種:
1:使用 mci,這種方法和 director 的集成不好,不建議采用。
2:使用 xtra,與 director 集成好,但是需要額外購買。
3:使用 active x ,與 director 集成,不需要額外購買。
我在這里介紹的方法是第三種。
其實(shí)這個(gè)解決方法和上面讀入 pdf 的方法相同,在設(shè)置和編程上稍有出入。
具體解決方法如下:
1:在 director 中將 acrobat reader active x 控件。
選擇 insert >control >activex.
然后在出現(xiàn)的對(duì)話框中選擇 “activemoviecontrol object"。
單擊 ok 按鈕后會(huì)進(jìn)入 第二個(gè) activemovie active x 屬性對(duì)話框
滾動(dòng)屬性標(biāo)簽中的屬性直到 屬性filename名出現(xiàn)。單擊 ”按鈕“...",然后單擊"browse" 按鈕去選擇要播放的 avi 或 mpg 文件。將此控件插入 director 中。
將這個(gè)剛剛插入的 activex控件從角色庫中拖放到舞臺(tái)上。你可以盡量拉伸這個(gè) sprite 到你希望的大小。
注:新的版本可能不包含 按鈕“...",你可以使用 lingo 此屬性
set the filename of member "xxx" to "1.mpg"
點(diǎn)擊 director 中的播放按鈕,你就可以看到 mpeg 文件的播放了。
你也可以通過 lingo 編寫程序訪問此控件的方法,例如 run 是這個(gè)控件的一個(gè)方法,
你可以將在一個(gè)按鈕中附上下面的代碼
on mouseup
run (sprite 1) --假設(shè)此控件所在通道為 1
end
注:activex 視頻對(duì)象總是直接寫屏幕的,它的 direct to stage 總是設(shè)置的,這使得它超越 director 通道的安排次序,總是在最上面的。
問題 5:什么是 shockwave, 什么是 flash,為什么 shockwave 比 flash 提供更高的幀速率?
解答:
1:shockwave 和 flash 是 macromedia 提供的兩種網(wǎng)上媒體流播放技術(shù)。flash 是一種網(wǎng)上矢量動(dòng)畫技術(shù)并帶有一定的交互編程功能。shockwave 是一種更加復(fù)雜的播放技術(shù),由于它提供了強(qiáng)大的,可擴(kuò)展的腳本引擎,使得它可以制作聊天室,操作 html,解析 xml 2文檔,控制適量圖形,兩者都是流媒體技術(shù)。但是 flash 啟動(dòng)非常的快,而 shockwave 啟動(dòng)沒有 flash 快。flash 使用 flash 軟件制作,文件后綴名是 swf (shockwave flash format),shockwave 是用 director 制作,文件后綴名是 dcr。
2:
幀速率決定了媒體可以播放的最高速率,shockwave 和 flash 的實(shí)際播放速率通常由于播放所需的計(jì)算量而達(dá)不到指定的播放率,二者的內(nèi)部渲染引擎不同,shockwave 的幀速率通常在30-60 之間,而 flash 的幀速率在 7-12 之間。shockwave 本質(zhì)上使用一個(gè)高性能的點(diǎn)陣復(fù)合引擎,而 flash 實(shí)質(zhì)上是一個(gè)實(shí)時(shí)適量到點(diǎn)陣的渲染引擎。通常矢量到點(diǎn)陣的渲染要比簡(jiǎn)單的將點(diǎn)陣圖像復(fù)合更加耗時(shí),這就是為什么 shockwave 比 flash 提供更高的幀速率。
一句話:flash 是一個(gè)矢量動(dòng)畫軟件 ,而 director 制作的 shockwave 更多是基于點(diǎn)陣的動(dòng)畫。
其實(shí)這是一個(gè)很簡(jiǎn)單的事實(shí),但是非常令人費(fèi)解的是很多人并不清楚這些。致使很多人在 flash 中嵌入大量的位圖,使得文件很大。也有的人總覺得 flash 比 shockwave 慢,卻不明白原因。
新聞熱點(diǎn)
疑難解答