[摘 要] 文章分析了Javascript與Authorware各自的優(yōu)點(diǎn),介紹了javascript for Authorware的有關(guān)概念,結(jié)合某產(chǎn)品訂購(gòu)、查詢系統(tǒng)的制作,闡述了Javascript在Authorware中的使用方法,重點(diǎn)論述了Authorware與Javascript相結(jié)合實(shí)現(xiàn)數(shù)據(jù)的查詢和色彩值的轉(zhuǎn)換方法。
[關(guān)鍵詞] Javascript Authorware 數(shù)據(jù)查詢 色彩值轉(zhuǎn)換
一、前言
Authorware是由美國(guó)先前的Macromedia公司推出的多媒體創(chuàng)作工具,由于其簡(jiǎn)便高效、功能強(qiáng)大,深受廣大用戶的歡迎,已成為當(dāng)今應(yīng)用最為廣泛的多媒體開發(fā)工具。經(jīng)常用于制作教學(xué)光盤、商業(yè)產(chǎn)品介紹、模擬產(chǎn)品的實(shí)際操作過程、設(shè)備演示等。Authorware 7.0開始,在腳本編寫時(shí)除了用Authorware本地腳本語言(簡(jiǎn)稱為aws),還可以直接使用javascript語言編寫程序代碼,這給廣大多媒體產(chǎn)品的開發(fā)人員帶了更加便利的開發(fā)環(huán)境。
JavaScript(javascript Language,簡(jiǎn)稱為JS)是一種基于對(duì)象(Object)和事件驅(qū)動(dòng)(Event Driven)并具有安全性能的腳本語言。使用它可以完成一些特殊功能的指令序列(Java小程序),安全性強(qiáng),跨平臺(tái)性好,主要應(yīng)用于網(wǎng)頁設(shè)計(jì),可以實(shí)現(xiàn)在一個(gè)Web頁面中鏈接多個(gè)對(duì)象,與Web客戶交互作用。
如果將Authorware的交互性和JavaScript的靈活性有機(jī)地結(jié)合在一起,兩個(gè)開發(fā)工具軟件通力合作,形成一種融合JavaScript技術(shù)的多媒體,可以為用戶提供一個(gè)有力的工具,開發(fā)人員可以通過編寫程序增強(qiáng)其功能,在需要時(shí)可用程序來控制所有對(duì)象的特性,方便他們制作功能指令、知識(shí)對(duì)象(Knowledge Objects),以及具延伸性的內(nèi)容。這樣Authorware的多媒體表現(xiàn)力將更加強(qiáng)大,表現(xiàn)方式更加靈活。例如在一個(gè)產(chǎn)品訂購(gòu)、查詢系統(tǒng)中,可以用aws構(gòu)建系統(tǒng)框架、連接數(shù)據(jù)庫(kù)、控制循環(huán)等,用js實(shí)現(xiàn)數(shù)據(jù)的操作、轉(zhuǎn)換等。
二、javascript for Authorware的有關(guān)概念
javascript for Authorware具備javascript語言的核心內(nèi)容,具體包括各種數(shù)據(jù)類型、表達(dá)式、運(yùn)算符、語句,以及javascript 1.5版的核心對(duì)象(Native ECMAscript objects)。
1.基本數(shù)據(jù)類型
在JavaScript中四種基本的數(shù)據(jù)類型:數(shù)值(整數(shù)和實(shí)數(shù))、字符串型(用“”號(hào)或‘’括起來的字符或數(shù)值)、布爾型(使True或False表示)和空值。在JavaScript的基本類型中的數(shù)據(jù)可以是常量,也可以變量。
2.表達(dá)式和運(yùn)算符
(1)表達(dá)式
在定義完變量后,就可以對(duì)它們進(jìn)行賦值、改變、計(jì)算等一系列操作,這一過程通常又稱表達(dá)式,可以說它是變量、常量、布爾及運(yùn)算符的集合,因此表達(dá)式可以分為算術(shù)表述式、字串表達(dá)式、賦值表達(dá)式以及布爾表達(dá)式等。
(2)運(yùn)算符
運(yùn)算符完成操作的一系列符號(hào),在JavaScript中有算術(shù)運(yùn)算符,如+、-、*、/等;有比較運(yùn)算符如!=、==等; 有邏輯布爾運(yùn)算符如!(取反)、|、||; 有字串運(yùn)算如+、+=等。
3.JavaScript程序構(gòu)成
(1)if條件語句
基本格式:if(表述式)
語句段1;
......
else
語句段2;
.....
功能:若表達(dá)式為true,則執(zhí)行語句段1;否則執(zhí)行語句段2。
(2)For循環(huán)語句
基本格式:for(初始化;條件;增量)
語句集;
功能:實(shí)現(xiàn)條件循環(huán),當(dāng)條件成立時(shí),執(zhí)行語句集,否則跳出循環(huán)體。
(3)while循環(huán)
基本格式:while(條件)
語句集;
該語句與For語句一樣,當(dāng)條件為真時(shí),重復(fù)循環(huán),否則退出循環(huán)。
4.對(duì)象
javascript for Authorware支持的javascript對(duì)象包括The Global object,Object objects,Error objects,F(xiàn)unction objects,Array objects,String objects,Boolean objects,Number objects,The Math object,Date objects,RegExp (正則表達(dá)式) objects。
5.函數(shù)
javascript for Authorware除了系統(tǒng)提供的內(nèi)置函數(shù)外,也支持用戶自定義函數(shù)。如:
function square(x,y)//定義函數(shù)
{
var sum; sum=x*x+y*y; retun sum;//函數(shù)主體
}
Aw.sum=square(aw.x,aw.y);//調(diào)用函數(shù),并將結(jié)果賦給aw變量sum。
三、javascript 在Authorware中的使用方法
在計(jì)算圖標(biāo)工具欄最左端有一個(gè)選擇腳本語言的下拉按鈕,在此處選擇JavaScript選項(xiàng)后,在本計(jì)算圖標(biāo)中就能直接使用JavaScript語言編寫程序。應(yīng)當(dāng)注意,如果選擇了使用JavaScript編程,則在同一計(jì)算圖標(biāo)中就不能再使用Authorware的編程語言(或二者的混合)。但是仍能引用Authorware中的變量和函數(shù),方法是在引用Authorware變量和函數(shù)時(shí)加上對(duì)象名“aw.”。如圖1、圖2所示,左圖是Authorware代碼編輯窗口,右圖是javascript編寫窗口。
四、JavaScript與Authorware相結(jié)合實(shí)現(xiàn)數(shù)據(jù)的查詢
在實(shí)際使用中可以根據(jù)兩種語言的不同長(zhǎng)處,結(jié)合使用,目的是使開發(fā)過程、代碼更加簡(jiǎn)明。
如: 在本系統(tǒng)中,作者將二者很好的相結(jié)合,實(shí)現(xiàn)了外部數(shù)據(jù)的導(dǎo)入、顯示、查詢、分頁顯示。
1.從數(shù)據(jù)庫(kù)或外部文本文件讀取內(nèi)容:
text:=ReadExtFile (FileLocation^”jv.txt”),
2.利用Authorware的文本交互,輸入要查詢的信息:
mystring:=EntryText
3.在js代碼編輯窗口,將Authorware變量賦給js變量:
var mystring_js=aw.mystring;
4.創(chuàng)建RegExp對(duì)象,JavaScript有兩種方式創(chuàng)建RegExp對(duì)象的方法。
(1)用RegExp對(duì)象的顯示構(gòu)造函數(shù):
var regex=new RegExp(mystring2,ig);
(2)用RegExp對(duì)象的隱式構(gòu)造函數(shù):
var regex=/(mystring2/ig
5.利用JavaScript的search()方法,查詢指定的信息,并將查詢結(jié)果賦給aw變量:
aw.index=beforestring.search(regex);
6.“用js查詢”計(jì)算圖標(biāo)的主要功能是:創(chuàng)建數(shù)組,利用JavaScript的split()方法,分割數(shù)據(jù),并保存于數(shù)據(jù)庫(kù)中。
var y=new Array()//創(chuàng)建數(shù)組
y=beforestring.split(/\\r/)//將字符串分割
aw.n=y.length //測(cè)定數(shù)組長(zhǎng)度,用于控制循環(huán)次數(shù)
7.“分記錄顯示“利用Authorware決策組實(shí)現(xiàn)循環(huán),主要功能是:分頁顯示記錄,根據(jù)數(shù)組長(zhǎng)度(y.length),決定循環(huán)的次數(shù)(n)。
var j=aw.i; j=j-1; aw.len=y[j]//輸出分頁結(jié)果
五、用JavaScript實(shí)現(xiàn)色值的轉(zhuǎn)換
在本系統(tǒng)中,用戶可以收集客戶選取的顏色,在具體實(shí)施時(shí),作者調(diào)用了windows顯示顏色對(duì)話框 (用binapi.u32—調(diào)用windows顯示顏色對(duì)話框) ,使用其中BNA_DialogGetColor()、BNA_RGB2Red(color)、BNA_RGB2Green(color)、BNA_RGB2Blue(color)函數(shù),實(shí)現(xiàn)對(duì)顏色對(duì)話框的調(diào)用和顏色的分離。但分離值是十進(jìn)制結(jié)果,為了滿足不同用戶的需要,利用JavaScript的toString()函數(shù),非常方便的將其轉(zhuǎn)換為16進(jìn)制的數(shù)據(jù)。
1.在aw實(shí)現(xiàn)顏色的分離:
color:=BNA_DialogGetColor()
R:=BNA_RGB2Red(color)
G:=BNA_RGB2Green(color)
B:=BNA_RGB2Blue(color)
2.在js中將RGB轉(zhuǎn)成16進(jìn)制
var r2=aw.R; var g2=aw.G; var b2=aw.B;
aw.r1= r2.toString(16); aw.g1= g2.toString(16); aw.b1= b2.toString(16);
這樣au中的r1為16進(jìn)制字符串,如R為255,r1為ff
3.在aws中連接r1、g1、b1為16進(jìn)制字符串,將所有信息保存到數(shù)據(jù)庫(kù)中
shiliu:=”#”^r1^g1^b1
DB_SQLString:=”insert into new1 (yifang,dres,phon,R,G,B,shiliu) values(‘”^yifang^”’,’”^dres^”’,’”^phon^”’,’”^R^”’,’”^G^”’,’”^B^”’,’”^shiliu^”’)“
ODBCExecute(DB_ODBCHandle, DB_SQLString)
六、結(jié)語
總之,任何一種軟件開發(fā)工具都有其優(yōu)點(diǎn)和缺點(diǎn),在實(shí)際工作中,要注意有選擇性的綜合應(yīng)用多種開發(fā)工具,才能把工作做得既完善又省力。本文根據(jù)實(shí)際工作的需要將javascript與Authorware結(jié)合使用,進(jìn)一步拓展了Authorware的實(shí)用功能,使Authorware平臺(tái)中多種信息媒體的集成性得到更加完美的體現(xiàn)。
參考文獻(xiàn):
[1]王慶延 石瀟等:多媒體技術(shù)與應(yīng)用.清華大學(xué)出版社,2004.6
[2]黃曉宇等:中文Authorware7.0多媒體設(shè)計(jì).機(jī)械工業(yè)出版社,2005.6
[3]石瀟等:基于動(dòng)態(tài)管理的多媒體技術(shù)在服裝廣告中的應(yīng)用. 商場(chǎng)現(xiàn)代化,2007.7