亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

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中使用該類對象。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产高清久久久久久| 亚洲第一福利网站| 91精品国产91久久久久久久久| 国产一区二区三区视频在线观看| 日韩综合视频在线观看| 亚洲福利在线看| xxxxx91麻豆| 日韩性xxxx爱| 精品亚洲一区二区三区在线观看| 日韩精品中文字幕视频在线| 日韩最新中文字幕电影免费看| 国产精品igao视频| 国产欧美精品久久久| 欧美日韩中文在线| 国产精品久久久av久久久| 青青久久av北条麻妃黑人| 亚洲激情视频网| 国产精品一区二区久久精品| 亚洲成人在线网| 91精品国产综合久久香蕉| 国产精品h片在线播放| 国产精品高潮呻吟久久av黑人| 欧美日韩国产一区二区| 亚洲区bt下载| 成人综合网网址| 亚洲成人免费网站| 米奇精品一区二区三区在线观看| 欧美国产日本高清在线| 国产精品一区二区电影| 国产九九精品视频| 日韩精品免费一线在线观看| 欧美大学生性色视频| 国产精品久久久久久av福利| 国产亚洲人成网站在线观看| 欧美人交a欧美精品| 亚洲视频欧洲视频| 亚洲免费一级电影| 亚洲精品国产精品国自产观看浪潮| 久久国产精品影视| 国产日韩中文字幕在线| 亚洲区免费影片| 成年人精品视频| 5278欧美一区二区三区| 欧美刺激性大交免费视频| 欧美大奶子在线| 成人福利网站在线观看11| 日本精品久久久久久久| 国产精品丝袜久久久久久高清| 日韩av中文字幕在线| 日韩成人免费视频| 97在线视频免费播放| 久久精品青青大伊人av| 亚洲国产精品一区二区三区| 国产精品久久久久久久电影| 一区二区三区回区在观看免费视频| 91大神在线播放精品| 一本色道久久综合狠狠躁篇的优点| 在线免费观看羞羞视频一区二区| 亚州欧美日韩中文视频| 美女视频黄免费的亚洲男人天堂| 欧美日产国产成人免费图片| 欧美国产亚洲精品久久久8v| 成人欧美一区二区三区黑人| 精品香蕉在线观看视频一| 久久人人爽人人爽人人片亚洲| 精品动漫一区二区| 国产99久久久欧美黑人| 久久综合色88| 成人深夜直播免费观看| 日韩中文字幕在线观看| 久久久99久久精品女同性| 亚洲白拍色综合图区| 日本久久精品视频| 久久影院模特热| 亚洲欧美国产一本综合首页| 久久精品国产精品| 国产97在线亚洲| 亚洲精品一二区| 精品国偷自产在线视频99| 久久人91精品久久久久久不卡| 亚洲天堂色网站| 国产欧美日韩视频| 欧美福利在线观看| 亚洲第一精品福利| 欧美激情videoshd| 日韩av网址在线观看| 亚洲人成伊人成综合网久久久| 欧洲中文字幕国产精品| 伊人男人综合视频网| 激情亚洲一区二区三区四区| 91精品国产综合久久香蕉922| 国产欧美久久一区二区| 成人做爽爽免费视频| 亚洲国产91色在线| 国产欧美精品xxxx另类| 亚洲已满18点击进入在线看片| 久久伊人精品天天| 精品一区二区亚洲| 亚洲综合大片69999| 久久久久亚洲精品成人网小说| 亚洲电影免费观看高清完整版在线| 精品亚洲一区二区三区在线播放| 亚洲女人被黑人巨大进入al| 欧美在线视频观看免费网站| 欧美一级大片视频| 欧美日韩国产999| 久久激情五月丁香伊人| 亚洲欧美中文日韩在线| 亚洲女人天堂成人av在线| 国产精品高潮呻吟久久av无限| 欧美一级淫片丝袜脚交| 亚洲人a成www在线影院| 最近更新的2019中文字幕| 国产成人在线精品| 久久精品视频导航| 久青草国产97香蕉在线视频| 一区二区三区四区在线观看视频| 欧美wwwwww| 亚洲品质视频自拍网| 成人精品久久一区二区三区| 在线视频日本亚洲性| 国产在线精品自拍| 久久九九免费视频| 精品国产一区二区三区久久狼黑人| 国产精品第三页| 亚洲一区二区久久久| 欧美日韩午夜剧场| 亚洲精品美女在线观看| 欧美电影在线观看| 精品国产电影一区| 国产精品高潮呻吟久久av黑人| 欧美野外猛男的大粗鳮| 欧美大尺度激情区在线播放| 欧美做爰性生交视频| 国产精品女人久久久久久| 亚洲精品一二区| 欧美激情亚洲综合一区| 欧美成人在线影院| 国产噜噜噜噜噜久久久久久久久| 国产日韩一区在线| 国产精品久久婷婷六月丁香| 欧美高清视频在线| 日本高清+成人网在线观看| 亚洲理论片在线观看| 国产精品一二三视频| 国产美女主播一区| 91免费福利视频| 欧美国产在线视频| 亚洲国产小视频在线观看| 97免费中文视频在线观看| 亚洲国产91精品在线观看| 国产精品扒开腿做爽爽爽男男| 国内揄拍国内精品少妇国语| 欧美xxxx18性欧美| 在线免费观看羞羞视频一区二区| 在线观看精品自拍私拍| 国内偷自视频区视频综合| 国模gogo一区二区大胆私拍| 亚洲国产精品久久| 欧美福利视频在线| 久久亚洲一区二区三区四区五区高| 日韩免费精品视频| 国产精品成人国产乱一区| 97**国产露脸精品国产|