麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 網站 > 媒體動畫 > 正文

Authorware基礎教程:authorware7程序設計基本的教學文章--JS編制程序(3)

2024-09-08 19:26:43
字體:
來源:轉載
供稿:網友

3.6.1.3  對象

javascript for authorware支持的javascript對象包括the global object,object objects,error objects,function objects,array objects,string objects,boolean objects,number objects,the math object,date objects,regexp (正則表達式) objects。

這些對象的屬性和方法并不是全都能被javascript for authorware支持。表3-4中列出了javascript for authorware支持的所有javascript對象,并且注明對象的每一種屬性或方法是否被ecma標準和javascript for authorware所支持。

熟練的javascript設計人員習慣于在web瀏覽器或服務器環境下編程,由于authorware不是一個web瀏覽器,在javascript for authorware中不存在window、location等對象,以及其他與瀏覽器相關的元素、屬性和方法。

通過authorware文檔對象模型,javascript for authorware還實現了以下3類新的對象。

(1)aw對象:即authorware對象,它使javascript可以訪問authorware的所有函數和變量,包括圖標變量、自定義函數和自定義變量。

(2)icon對象:即圖標對象,它使javascript可以訪問當前程序文件中所有的設計圖標,以及設計圖標的屬性和方法。

(3)datatype對象:即數據類型對象,具體包括eventlist, point, propertylist, rect, symbol對象。這些數據類型對象用于對authorware的專有數據類型進行轉換,以便于在javascript for authorware中使用。


 

3.6.2  authorware文檔對象模型

authorware document object model(文檔對象模型,簡稱為dom)使javascript for authorware能夠訪問和維護程序文件中的設計圖標和變量。

authorware文檔對象模型定義了由設計圖標構成的authorware程序的結構。通過對象和屬性的方式描述設計圖標和變量,authorware文檔對象模型為javascript語言提供了訪問和維護authorware程序與設計圖標的途徑:authorware程序可以看做一個樹狀結構,由根設計圖標(整個authorware程序可以看做一個包含了所有設計圖標的大的群組設計圖標,即根設計圖標)、群組設計圖標以及各種分支流程構成。在文檔對象模型中,樹狀程序結構通過由父圖標和子圖標構成的層次結構保存和表示,在程序結構的每一層中,設計圖標都以javascript對象的方式表示。通過這種層次結構,程序中的任何設計圖標都可以被javascript訪問。

習慣于javascript編程的設計人員一定要注意區分html文檔對象模型和authorware文檔對象模型。javascript for authorware不能訪問html文檔對象模型中的對象,這是因為authorware程序并不是一個html文檔(反之亦然,普通的javascript語言也不能訪問authorware文檔對象模型中的對象)。html文檔對象模型包含的 anchor、applet、area、button、checkbox等對象僅在html文檔環境中有意義,authorware文檔對象模型包含的aw和icon對象也僅在authorware程序環境中才有意義。兩種文檔對象模型都可以訪問array、boolean、date、function和math等對象,因為這些對象屬于javascript語言本身,而不是某種文檔對象模型的組成部分。

js是面向對象的語言,其方法和屬性被封裝在對象內部。在javascript for authorware中引用設計圖標、系統函數或系統變量的方式,和瀏覽器環境下的javascript在html文檔中引用對象的方式是相似的。例如只要創建了icon對象,在javascript for authorware中就可以通過點語法訪問該對象的所有屬性(在authorware中創建的圖標變量)。

3.6.3  aw對象

aw對象就是當前的程序文件。當前程序文件中的系統函數相當于aw對象的方法,系統變量和自定義變量則相當于aw對象的屬性。因此通過aw對象和點語法,在js中就可以使用上述函數和變量。例如使用aw.filelocation就可以獲取當前程序文件的存儲路徑,使用aw.box( 1, 1, 1, 100, 100)就可以在演示窗口中繪制一個長度和寬度都是100像素的矩形。

假設當前程序中已經存在初始值為0的自定義aws變量i,則通過圖3-52所示的js代碼就可以將變量i的值增加到100。如果在“showi”設計圖標中創建一個嵌有變量i的文本對象{i},則運行程序就會在【演示】窗口中顯示出變量i的當前值100。

    

圖3-52  處理aws變量

js中的一切代碼都是對大小寫極為敏感的。無論變量或函數是屬于aws還是js,都必須嚴格檢查它們的大、小寫狀態。例如使用aw.filelocation不會獲得任何路徑信息。

aws中的線性列表可以看成是js中的array對象。假設當前程序中存在一個列表型變量mylist,其值為[1, 2, 3, 4],在js中就可以通過aw.mylist[0]獲取列表中的第1個元素的值1,因為js中的array對象下標從0開始。

js中不允許函數和變量具有相同的名稱,但是在aws中部分系統變量和系統函數是重名的,例如fulldate。javascript for authorware規定在這種同名情況發生時,只有函數允許被使用,所以js代碼

var i=aw.fulldate(37908);

可以正常執行,變量i的值是"2003年10月15日"。但是

var i=aw.fulldate;

將導致出現異常,變量i的值會成為"function fulldate() {    [native code] }"。

以下名稱在aws中是由函數和變量共同使用的,但在js中只能通過aw對象直接使用對應的函數:

charcount,cmireadcomplete,date,day,dayname,fulldate,iconid,icontitle,month,monthname,numcount,wordcount,year

如果確實需要使用這些名稱對應的變量,就只能通過aw對象調用authorware系統函數eval()或evalassign()達到目的,這兩個函數的作用簡單而言是將字符串參數作為表達式進行計算并返回計算結果。由于js并不理會字符串的內容,因此就達到了使用同名變量的目的。

腳本函數以及從.u32、.dll和.x32文件中加載到程序文件中的外部函數在js中也必須通過aw.eval()或aw.evalassign()方式執行。例如從kosupprt.dll文件中加載顏色選擇對話框函數showcolordialog()之后,在js中使用語句

color = aw.eval("showcolordialog()")

才能正常調用該函數。直接使用aw.showcolordialog()則會導致出現“typeerror: aw.showcolordialog is not a function”的錯誤提示信息。

從js中頻繁訪問aws變量會為程序運行帶來額外的開銷。如果利用js編程,在僅使用js本身的對象時,程序的執行速度會快于從js中訪問aw對象,因此最好首先將aws變量的值存儲到js變量中,然后利用js變量完成剩余的工作,最后再將結果返回到authorware變量中。例如可以將圖3-52中所示的js代碼改寫為:

var i =aw.i;

for ( ; i<100; i++ );

aw.i = i;

這樣就使訪問aw對象的次數由原來的200次降低到2次。

3.6.4  icon對象

通過aw.showi的方式并不能訪問圖3-52所示的顯示設計圖標,因為設計圖標在authorware內部不是以名稱標識的。js代碼通過icon對象訪問設計圖標,新的icon對象通過new運算符調用icon對象的構造函數來創建。

創建icon對象的語句為:

var iconobject = new icon(iconid)

如果參數iconid是一個現有設計圖標的id號碼,那么被創建的icon對象就會引用該設計圖標。如果參數iconid為0或者是無效的id號碼,那么js就使用當前設計圖標的id號碼創建icon對象。

也可以采取以下方式,通過設計圖標名稱創建icon對象:

var iconshowi = new icon(aw.iconid("showi"));

即通過aw對象的iconid方法獲取“showi”設計圖標的id號碼,然后再根據id號碼創建icon對象iconshowi。

new icon(iconid)操作僅僅創建一個icon對象并且在該對象與指定設計圖標之間建立引用關系,并不會創建一個新的authorware設計圖標。被引用的設計圖標所擁有的圖標變量,自動成為icon對象的屬性。例如可以通過iconshowi.icontitle獲取“showi”設計圖標的名稱"showi",通過iconshowi.iconid獲取“showi”設計圖標的id號碼,還可以通過iconshowi.displayx、iconshowi.displayy獲取“showi”設計圖標在演示窗口中的坐標。

假設“showi”設計圖標擁有一個自定義圖標變量myvar@"showi",那么通過以下js代碼,還可以改變該變量的值。

iconshowi.myvar = "this is the new value for myvar"

下列aws函數可以作為icon對象的方法使用:

builddisplay,callicon ,callsprite ,callscripticon ,childnumtoid ,displayicon ,displayiconnoerase ,eraseicon ,eraseresponse,getcalc ,getexternalmedia,geticoncontents ,geticonproperty ,getmovieinstance,getpostpoint,getpostsize,getspriteproperty,goto,iconfirstchild ,iconlastchild ,iconnext ,iconnumchildren ,iconparent ,iconprev ,icontitleshort ,icontype,importmedia ,keywords,mediapause,mediaseek,netpreload,openicon,overlapping,pagecontaining,preload,replaceselection,selecticon ,setcalc,setempty,sethotobject,seticonproperty ,seticontitle ,setkeyboardfocus,setmotionobject ,setpastehand,setpostpoint,setpostsize,setspriteproperty ,settargetobject,timeoutgoto,unload

這些方法在js中使用時,都比在aws中使用時省略了第一個參數iconid,因為每個方法自動使用被當前icon對象引用的設計圖標的id號碼作為第一個參數。

正是由于這種原因,在使用goto函數時要注意,必須通過作為跳轉目標的icon對象調用該方法,即執行iconobject.goto()使程序跳轉到iconobject引用的設計圖標。

由于aws中的"#"字符不能被js識別,因此當某種方法需要傳遞屬性參數時,必須以字符串形式傳遞。例如通過以下js代碼,獲取“showi”設計圖標movable屬性的當前值。

iconshowi.geticonproperty("#awmovable")

3.6.5  datatype對象

為了描述和處理authorware的專用數據類型,javascript for authorware包含了下列datatype對象:symbol objects, point objects, rect objects, propertylist objects和 eventlist objects。

當通過aw對象或icon對象在js中對authorware專用數據類型的變量進行賦值操作時,authorware數據類型將自動轉換為相應的datatype對象。反之亦然,將上述datatype對象作為參數傳遞給authorware函數(或者aw對象的方法)時,這些對象將自動轉換為函數(或方法)所需要的專用數據類型。

1.point對象

新的point對象可以由new point( x, y )或aw.point( x, y )方式創建,用于描述【演示】窗口中某點的坐標。point對象具有2種屬性:x和y,分別用于描述一點的橫、縱坐標。

以下js代碼創建兩個point對象:p1和p2

var p1=new point(10,20);

var p2=aw.point(20,30);

則p1.x的值為10,p2.y的值為30。還可以通過賦值語句將對象p1的坐標傳遞給aws變量p:

aw.p=p2

變量p的值為point(20, 30)。在js中也可以通過aw.p.x和aw.p.y的方式訪問aws變量p的坐標。

2.rect對象

新的rect對象可以由new rect( left, top, right, bottom ) 或aw.rect( left, top, right, bottom )方式創建,用于描述【演示】窗口中的一個矩形區域。rect對象具有4種屬性: left, top用于描述矩形左上角的坐標,right, bottom 用于描述矩形右下角的坐標。以下js代碼創建一個rect對象:

var rect1=aw.rect(10,20,20,30);

rect對象rect1的4種屬性的值分別為:

rect1.left=10, rect1.top=20, rect1.right=20, rect1.bottom=30

3.symbol對象

新的symbol對象可以由new symbol( "symbolname", value ) 或aw.symbol ( "symbolname" )方式創建,symbol對象具有兩種屬性:name用于描述對象的符號名(不包含"#"字符),value用于描述對象的值。以下js代碼創建一個symbol對象:

var symbol1=new symbol( "age", 10 );

則symbol1.name=age, symbol1.value=10。

4.propertylist對象

新的propertylist對象由new propertylist() 或aw.propertylist方式創建,propertylist對象通過點語法引用屬性列表中的所有屬性。例如在authorware中創建一個屬性列表person=[#name:"tom", #age:18, #id:12345673],那么在js中就可以通過以下方式訪問該屬性列表:

aw.person.name, aw.person.id, aw.person.age

或者創建propertylist對象:

var plist=aw.person

然后通過以下方式訪問plist對象的各種屬性:

plist.name, plist.age, plist.id

5.eventlist對象

新的eventlist對象由new eventlist() 方式創建。eventlist對象僅保留作將來使用,目前不能在js中使用該類對象。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费视频xxxx | 天天舔天天插 | 一级做人爱c黑人影片 | 高清av免费 | 操操操操网 | 欧美一级毛片美99毛片 | 久久精品亚洲精品国产欧美kt∨ | 久久99国产精品久久99果冻传媒 | 久久中文免费 | 久久久中精品2020中文 | 欧美亚洲国产成人综合在线 | 日韩剧情片 | 精品国产一区二区三区四 | 91精品国产综合久久婷婷香 | 免费黄色在线电影 | 黄色特级片黄色特级片 | 欧美视频国产精品 | 亚洲特黄 | 精品国产91久久久久久浪潮蜜月 | 视频一区二区三区在线观看 | 免费国产 | 天天骑夜夜操 | 99国产精品白浆在线观看免费 | 成人免费在线网 | 国产精品自拍av | 久久激情小视频 | 国产亚洲综合一区二区 | 欧美日韩免费一区 | 国产精品视频免费在线观看 | 久草成人在线观看 | 热久久91| 色网站在线免费观看 | 欧美成人午夜一区二区三区 | 国产91影院| 主人在调教室性调教女仆游戏 | 国产精品美女久久久免费 | 亚洲最大久久 | 欧美一级三级在线观看 | 成人午夜免费福利 | 午夜在线视频观看 | 精品一区在线视频 |