李志凌 焦麗萍
摘要:在利用Director軟件制作多媒體時(shí),系統(tǒng)所提供的控件相對(duì)單一,針對(duì)一些個(gè)性化的設(shè)計(jì)需求,就需要借助Lingo語言來實(shí)現(xiàn)。該文通過對(duì)Lingo語言的應(yīng)用,實(shí)現(xiàn)了對(duì)多媒體中圖文界面的滾動(dòng)控制。
關(guān)鍵詞:多媒體;Director;Lingo語言;滾動(dòng)控制
中圖分類號(hào):TP391.72文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)20-4983-03
在眾多多媒體制作軟件中,Director不僅可以方便、快捷地將圖像、聲音、文字、視頻,甚至3D影像動(dòng)態(tài)集成在一起,而且可以通過自帶的Lingo語言實(shí)現(xiàn)對(duì)聲音、視頻、文本、動(dòng)畫等的交互控制。在一般的多媒體制作中,對(duì)于多圖像或超長文本對(duì)象的顯示控制存在功能單一、界面視覺效果平淡的缺陷,不符合個(gè)性化多媒體設(shè)計(jì)的需求。該文結(jié)合教學(xué)實(shí)踐,借助于Lingo語言,通過對(duì)自定義滾動(dòng)條各元素施加腳本代碼,實(shí)現(xiàn)了對(duì)多圖超長文本界面的滾動(dòng)控制。
1 Lingo語言概述
Lingo語言是Director自帶的模塊化、面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是Director實(shí)現(xiàn)交互功能的重要工具語言,可以實(shí)現(xiàn)對(duì)聲音、視頻、文本、動(dòng)畫等的交互控制。
Lingo語言最基本的一點(diǎn)在于它是基于事件(event)的,當(dāng)某個(gè)事件發(fā)生的時(shí)候,才會(huì)執(zhí)行相應(yīng)的動(dòng)作。而在什么時(shí)候需要采取什么樣的事件,這又是和Lingo腳本的類型有關(guān)的。
Lingo的腳本類型通常分為frame腳本、sprite腳本、cast腳本和movie腳本,區(qū)分這些腳本類型的方法就是看這些腳本寫在什么位置上。一般來講,frame腳本寫在幀上,Sprite腳本寫在Sprite上,Cast腳本寫在Cast上,而Movie腳本寫在電影中,不依靠任何其他幀和角色。
2多媒體中的圖文滾動(dòng)控制實(shí)現(xiàn)
2.1問題的提出
在利用Director制作多媒體課件時(shí),時(shí)常會(huì)遇到某個(gè)界面插入選定圖片,或者某個(gè)界面插入文字。一般情況是,在某個(gè)界面插入文字時(shí)只需要插入提綱性的文字即可。但是,在具體教學(xué)中,有可能需要使用大篇幅的文字來闡述說明一個(gè)問題,這時(shí)可通過“Text- Framing- Scrolling”的設(shè)置,以滾動(dòng)文本的形式在特定區(qū)域內(nèi)顯示。
這里,可以看到,實(shí)現(xiàn)后的文本形式并不符合個(gè)性化多媒體設(shè)計(jì)的需求,利用系統(tǒng)提供的方式不能實(shí)現(xiàn)同一界面既插入圖片又插入文本,而且界面生硬,功能實(shí)現(xiàn)比較單一。我們需要實(shí)現(xiàn)的則是既有圖片又有文字的界面,而當(dāng)全部圖文長度超出顯示框區(qū)域時(shí),又需要圖文僅僅只在顯示框區(qū)域顯示,這就需要對(duì)圖文進(jìn)行滾動(dòng)控制。
2.2圖文界面的設(shè)計(jì)
上述需求在界面上的實(shí)現(xiàn),我們采用遮罩的方式。首先,制作一個(gè)與背景相一致的界面,以遮擋圖文超出顯示區(qū)域部分;其次,將遮罩界面上顯示圖文的區(qū)域鏤空,制作成透明區(qū)域,以顯示圖文;然后,設(shè)計(jì)制作出個(gè)性化滾動(dòng)條,以控制圖文的滾動(dòng)顯示。
在Director中導(dǎo)入精靈元素,并將精靈放置到剪輯室的通道中,此時(shí)應(yīng)注意剪輯室中各個(gè)精靈所在通道的順序,如圖1所示。
針對(duì)界面上的元素實(shí)現(xiàn)對(duì)圖文的滾動(dòng)控制,主要是通過上下按鈕、滾動(dòng)浮標(biāo)精靈來實(shí)現(xiàn)。
1)初始化上下按鈕
property pButton--按鈕精靈
property pButtonLocv --按鈕精靈原始位置
property pMode--按鈕是向上還是向下
property pDown--按鈕是否按下
2)初始化滾動(dòng)浮標(biāo)
property pButtonSpriteNum --浮標(biāo)通道號(hào)
property pHeight--浮標(biāo)的高度
property pBili--移動(dòng)比例
global pHow--實(shí)際比例
property pposition--鼠標(biāo)按下的狀態(tài)
3)初始化圖文精靈
property pSprites--圖文精靈列表
property pSpritesLocv --圖文精靈原始位置
property pLength--圖文移動(dòng)的距離
2.3圖文界面滾動(dòng)的控制實(shí)現(xiàn)
2.3.1鼠標(biāo)對(duì)滾動(dòng)浮標(biāo)的拖動(dòng)實(shí)現(xiàn)
實(shí)現(xiàn)代碼:
on exitframe me
if pposition then
sprite(me.spritenum).locv = the mouseV
pHow=float(the mouseV- sprite(pBarNumber).rect.top)/sprite(pBarNumber).rect.height
if pHow > 1 then
pHow = 1
end if
if pHow <0 then
pHow = 0
end if
changeloc(pHow)
end if
end exitframe
腳本中對(duì)于滾動(dòng)浮標(biāo)的移動(dòng)范圍進(jìn)行了控制,避免了滾動(dòng)浮標(biāo)移動(dòng)的范圍超出滾動(dòng)條的長度。
2.3.2與滾動(dòng)浮標(biāo)相對(duì)應(yīng)的圖文滾動(dòng)實(shí)現(xiàn)
實(shí)現(xiàn)代碼:
pSpriteslocv =[]
i = 1
repeat while (i <= pSprites.count)
add pSpriteslocv ,sprite(pSprites[i]).locv
i = i+1
end repeat
通過獲取的圖文精靈通道號(hào)及其原始位置,根據(jù)pHow的值通過函數(shù)changeloc()控制圖文的移動(dòng)。
2.3.3上下按鈕功能的實(shí)現(xiàn)
實(shí)現(xiàn)代碼:
on exitframe me
if pDown then
if pMode = "up" then
pHow = pHow - pBili --減少pHow
else if pMode = "down" then
pHow = pHow + pBili --增加pHow
end if
if pHow<0 then pHow = 0
if pHow>1 then pHow =1
sendsprite(pButtonSpriteNum,#changeloc,pHow)
end if
end exitframe
在上下按鈕功能的實(shí)現(xiàn)過程中,滾動(dòng)浮標(biāo)和圖文位置的改變是通過調(diào)用滾動(dòng)浮標(biāo)上的changeloc函數(shù)來實(shí)現(xiàn)的。
3結(jié)束語
目前,制作多媒體課件的軟件很多,而且各軟件又各具特色,由于Lingo語言的引入,使得Director具備了強(qiáng)大的集成功能和交互功能。該文對(duì)Lingo語言的應(yīng)用也僅限于初步探討階段,但其應(yīng)用的多面性和廣泛性使得Director在多媒體制作軟件中占據(jù)了重要地位。
參考文獻(xiàn):
[1]盧詩驕.Director11.5制作基于lingo語言的嵌入式音頻播放器[J],計(jì)算機(jī)光盤軟件與應(yīng)用, 2011(21),140-141.
[2]金暉.基于Director的電子雜志的設(shè)計(jì)與制作[J],科技信息,2011(25).
[3]郭新房,何方.Director 11交互式多媒體開發(fā)標(biāo)準(zhǔn)教程[M],北京:清華大學(xué)出版社,2009
[4]張豪,何方.Director交互式多媒體開發(fā)從新手到高手[M],北京:清華大學(xué)出版社,2009.