• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于JSFL的Flash自動測評系統(tǒng)研究

      2010-07-12 08:18:36王德東楊永華
      關鍵詞:時間軸圖層示例

      王德東,楊永華,盧 暢

      (浙江海洋學院公共實驗中心,浙江舟山 316004)

      Flash是Macromedia公司(現(xiàn)已被Adobe公司收購)開發(fā)的一款矢量動畫創(chuàng)作工具,主要用來創(chuàng)建二維動畫,也可以用它來創(chuàng)建幻燈片演示文稿、表單應用程序以及通過腳本程序來建立人機交互的內容。Flash可以包含文字、圖形、圖片、聲音以及視頻文件,由于是矢量格式,文件體積很小,很適合應用在網絡廣告、在線游戲以及網絡多媒體教程等領域,其精簡版Flash Lite在手機方面的應用也日漸豐富起來[1]。目前,各個高校大都開設了Flash軟件選修課程,由于選修此類課程的學生人數(shù)往往比較多,教師批改作業(yè)及閱卷工作量都很大,因此設計一個計算機自動測評系統(tǒng)就顯得很有必要。

      1 閱卷方案比較

      對真實環(huán)境下產生的Flash文件進行計算機自動閱卷,可以考慮三種方案:一是分析SWF文件格式以逆向工程的方式進行,二是利用數(shù)字圖像處理[2]及模式識別的方法[3],三是在Flash設計環(huán)境下通過運行JSFL腳本來對FLA文件進行模糊批閱。第一種方法不僅工作量巨大,而且由于商業(yè)因素,不可能完全逆向分析。第二種方法需要將Flash的每一幀截圖存為BMP或JPEG格式,然后進行識別,效率太低。第三種方法,有點類似于MS OFFICE中的VBA的閱卷方式,利用腳本語言讀取對象的屬性和標準答案比對,從而實現(xiàn)快速閱卷。這種方法開發(fā)難度低,效率高,可以大大縮短開發(fā)周期。

      2 JSFL文件介紹

      Flash提供了兩種形式的腳本,一種是編譯后的SWF文件運行時在Adobe Flash Player中執(zhí)行的腳本,即AS(Action Script)。另一種即我們要討論的Flash JavaScript API(簡稱JSAPI),它是Flash提供的應用程序編程接口,運行在Flash編輯環(huán)境中,用于擴展Flash IDE運行時的功能,其對應的腳本語言即JSFL。利用JSFL可以設置對象的屬性,自動執(zhí)行重復性任務,提高創(chuàng)作效率。同時,也可以利用它讀取對象的屬性來達到閱卷的目的。

      3 FLASH文檔對象模型(DOM)介紹

      Flash JavaScript API基于文檔對象模型(DOM),該模型允許使用JavaScript對象訪問Flash文檔。DOM包含一組頂級函數(shù)和兩個頂級對象FLfile對象和flash對象。FLfile對象用于對本地文件系統(tǒng)中的文件和文件夾進行操作,fl.documents代表當前打開的Flash文件數(shù)組。例如fl.documents[0]代表第一個打開的FLA文檔,而通過fl.getDocumentDOM().library.items[0],則可以獲得庫中第一個元素的引用。每個Document對象由子對象和屬性組成。DOM對象模型見圖1。

      圖1 FLASH文檔對象模型(DOM)Fig.1 Flash document object model(DOM)

      4 操作題測試項目

      主要測試內容有:文檔屬性;時間軸、圖層、幀等屬性及操作;動畫類型;庫、元件、位圖、聲音、視頻等屬性;靜態(tài)文本、濾鏡屬性;筆觸、顏色、填充操作;規(guī)則圖形(直線、圓、橢圓及多邊形)繪制操作;不規(guī)則圖形操作等。

      4.1 文檔(舞臺)屬性

      這里的文檔就是指舞臺,是演員表演的場所。在一個FLASH動畫中,舞臺的大小和幀頻都是一樣的,要想調整某一段動畫的播放速度,可以通過增加或減少幀的方法來解決。

      fl.getDocumentDOM().width 和 fl.getDocumentDOM().height 可以返回舞臺的寬度及高度;fl.getDocumentDOM().backgroundColor返回舞臺的背景顏色,格式為"#RRGGBB"的字符串,例如返回值為"0000FF"代表藍色。document.frameRate它指定播放動畫播放的速度,默認值為每秒12幀,其取值范圍為0.01~120之間。通過getMetadata返回文檔的標題及其描述性文字,這樣GOOGLE等搜索引擎就可以對其進行索引。調用getMetadata函數(shù)后自動產生XML文件,讀取它即可獲得文檔的“標題”及“描述”2個屬性。

      圖2 設置文檔(舞臺)屬性Fig.2 Set up parameters of the document(stage)

      4.2 場景、時間軸、圖層、幀

      4.2.1 場景(scene)及時間軸對象的主要屬性

      一場戲劇可以分為很多幕,這個“幕”就可以理解為場景,也可以理解為一本書中的一個章節(jié)。復雜的動畫往往分為多個場景,便于設計及管理。演員、音響、背景等各種因素需要按照事先安排好的次序及時間來進行演出,這個總調度是由時間軸來完成的。主要屬性有,timeline.name:場景(時間軸)名稱;timeline.currentLayer:當前活動圖層的編號;timeline.layerCount:圖層總數(shù);timeline.layers :圖層對象數(shù)組。

      4.2.2 圖層(layer)對象的主要屬性

      圖層可以看成是拍攝用的膠片,每層膠片是透明的,多個圖層按次序垂直排列。處于上面圖層中的對象會遮住下層相同位置的對象。圖層的主要屬性有,layer.color:圖層輪廓顏色;layer.frameCount:圖層幀數(shù);layer.frames:幀對象數(shù)組;layer.height:以百分比表示的圖層高度;layer.layerType:圖層類型;layer.parentLayer:圖層包含的文件夾、引導圖層或遮罩圖層。layer.locked:圖層的鎖定狀態(tài);layer.name:圖層的名稱;layer.visible:圖層是否被掩藏。

      4.2.3 幀(frame)對象的主要屬性

      “幀”是時間軸上的一個小格,是舞臺內容中的一個片斷,多個幀按照一定速度播放就形成了動畫。主要屬性有,frame.name:幀名稱;timeline.currentFrame:當前幀編號;frame.actionScript:ActionScript 代碼;frame.duration:幀的數(shù)量;frame.tweenType:補間的類型;frame.tweenEasing:補間對象的緩動數(shù)量;frame.labelType:幀名稱的類型,分為名稱、注釋、錨記三種;frame.motionTweenOrientToPath:動畫運動時是否旋,其中,motionTweenRotate說明旋轉方向(順時針或逆時針),motionTweenRotateTimes代表定補間元素在起始關鍵幀和下一關鍵幀之間旋轉的次數(shù);frame.motionTweenScale:對象移動時是否縮放,motionTweenSnap表示是否對齊到路徑,motionTweenSync表示對象運動時是否和時間軸同步。另外還有聲音名稱,播放方式及次數(shù)等屬性。

      4.3 元素、位圖、文本、濾鏡

      元素是一個統(tǒng)稱,在舞臺上輸入的文本、繪制的圖形、導入的位圖等都是元素,element.elementType表示元素的類型,有常用的有三種:"shape"、"text"、"instance"。Shpae對象是形狀對象。Instance 是庫項目的實例,對于位圖,通過instanceType屬性返回“bitmap”來判斷,然后通過getBits函數(shù)來測試其高度、寬度和顏色位數(shù)。文本類型分為靜態(tài)、動態(tài)及輸入三種,本系統(tǒng)著重測試靜態(tài)(static)文本。通過getTextAttr函數(shù)來測試字體名稱、顏色、大小、加粗、斜體、對齊方式等項目。濾鏡的概念是自FLASH8.0以后增加的,類似于PHOTOSHOP的濾鏡,用于增強位圖、文本、元件實例的效果。用getFilters函數(shù)可以獲得濾鏡對象,進而獲得其它的相應屬性。

      4.4 庫、元件

      庫(library)對象相當于一模板,包含元件(Symbol)、位圖、聲音和視頻。元件的類型分為 "movie clip"、"button"和"graphic",分別代表“影片剪輯”、“按鈕”及“圖形”。對于反復使用的元素,盡可能設計為元件,便于管理并能減少文件體積。通過getItemType屬性可以獲得其類型,通過getItemProperty函數(shù)獲取所選項目的屬性。

      4.5 筆觸、填充色、混色器

      getCustomStroke()返回筆觸對象。stroke.capType,指定筆觸端類型的字符串。可接受的值為 "none"、"round"和 "square";stroke.thickness 返回筆觸高度;stroke.color返回筆觸顏色。通過 getCustomFill()獲得取所選內容的填充對象,然后通過 fill.style、fill.color、fill.colorArray、fill.posArrayt等來返回填充類型、顏色、漸變及位置等屬性。

      4.6 形狀識別

      對于標準的矢量圖形的識別,例如直線、圓、橢圓、三角形、矩形、多邊形、星形等,可以統(tǒng)一采用模糊判斷方法。即在題目里明確規(guī)定形狀的高度、寬度以及X、Y的坐標,這樣便于閱卷。Flash編輯環(huán)境中元素的坐標位置見圖3及圖4。通過程序獲取其邊界點(參考6.1小節(jié)里的 getEgePoint()函數(shù)),然后和知識庫里的標準點比對,只要存在這些點(允許一定的誤差)就認為操作是正確的。

      對于不規(guī)則區(qū)域的識別相對比較復雜,不規(guī)則區(qū)域是由貝塞爾曲線組成的。在獲取了邊界點后,利用貝塞爾曲線公式,根據(jù)統(tǒng)計方法進行判斷[4]。

      圖3 屬性設置面板Fig.3 Panel of parameter setting-up

      圖4 圓的坐標點分配示意圖Fig.4 Map of distribution of circle points on the coordinate

      5 綜合舉例

      閱卷系統(tǒng)可以采取兩種方式給出成績:一是在JSFL文件里輸出各種對象的屬性值,并保存為文本文件,然后利用其它高級語言(例如VB)來讀取這個文件和標準答案比對;另一種方法是利用JSFL直接評分,并將分數(shù)寫在文件里,然后利用VB來讀取這個分數(shù)。前者比較靈活,可以結合數(shù)據(jù)庫做成通用的系統(tǒng),后者則可以設計一些比較復雜的題目,閱卷效率比較高。示例1采用了第一種方法,示例2則采取了第二種方法。另外,為了節(jié)約篇幅,程序中略去了錯誤處理代碼,具體閱卷時,需要詳細考慮容錯問題,例如考生沒有全部完成題目,此時JSFL代碼可能得不到正確的結果,可以使用try…catch(error)…finnaly以及使用if語句來處理。

      5.1 示例 1

      繪制 1個圓,半徑為 60,位置(X、Y)為(100,100)。筆觸顏色為為紅色,高度為4,用放射狀顏色填充,顏色點位置大概為(0,255),顏色分別為藍色、白色。見圖5。

      圖5 閱卷示例1Fig.5 Example 1 of Assessment

      關鍵閱卷代碼及分析:

      表1 score1.txt文件的內容Tab.1 Content of the file score1.txt

      表1所示的內容,用VB打開該文件,使用Instr()等函數(shù)就可以進行閱卷,只要判斷存在第1行的數(shù)據(jù),就可以認為正確繪制了一個圓。然后判斷第2、3行的內容,和標準答案比較即可給出分數(shù)。

      5.2 示例 2

      新建1個FLA文件,將圖層1命名為“背景”,導入素材“乒乓桌.jpg”到舞臺上,將其設置為背景。新建1個元件“乒乓球”,類型為“影片剪輯”。新建1個圖層,命名為“乒乓球”,將“乒乓球”元件拖到主舞臺中,從第1幀到第10幀建立補間動畫,見圖6。

      圖6 閱卷示例2Fig.6 Example 2 of assessment

      關鍵閱卷代碼:

      5.3 建立題庫及閱卷程序

      Flash操作題目閱卷系統(tǒng)分為兩個部分:出題系統(tǒng)及閱卷系統(tǒng),主程序及控制部分用VB開發(fā),F(xiàn)lash對象屬性的獲得通過JSFL來獲取。系統(tǒng)框架圖見圖7。在VB中結合ADO來操作數(shù)據(jù)庫[5],出題時用JSFL讀取FLA文件對象的各種屬性并寫入數(shù)據(jù)庫。閱卷時,再次利用JSFL獲得對象的屬性,進行比對,給出成績并寫入數(shù)據(jù)庫。閱卷的JSFL文件以及VB閱卷腳本保存在數(shù)據(jù)庫里,可以動態(tài)增加修改,因此本系統(tǒng)具有靈活的可擴展性。

      圖7 閱卷系統(tǒng)框架圖Fig.7 The framework of the assessment system

      VB關鍵代碼:

      6 結束語

      對于Flash軟件的考核,主要是測試學生對基本工具掌握的情況等,通過實例可以看出,該測試方法完全可行,結合在線理論測試系統(tǒng)及CAI輔助學習系統(tǒng),可以大大減少教師的工作量,提高學生的學習興趣及積極性,提高了閱卷的公正性。本系統(tǒng)在我校的Flash公選課程里試用,取得了不錯的效果。下一步打算將其做成COM插件[6]的形式運行于IE瀏覽器里,這樣整個系統(tǒng)都是基于B/S結構,方便了系統(tǒng)的使用及更新。

      [1]張 震.中文Flash8動畫網頁制作與實例教程[M].北京:冶金工業(yè)出版社,2006.

      [2]孫家廣.計算機圖形學[M].北京:清華大學出版社,2002.

      [3]張新峰,沈蘭蓀.模式識別及其在圖像處理中的應用[J].測控技術,2004,23(5):28-32.

      [4]徐文勝.真實環(huán)境下FLASH自動測評系統(tǒng)[J].農機化研究,2004(1):227-229.

      [5]魯佩云.ADO對象模型和用VB實現(xiàn)其應用的兩種方式[J].計算機工程與設計,2005,26(7):1 947-1 949.

      [6]游慶祥,姚世軍,韓 強.一種基于接口匹配的構件庫設計[J].微計算機信息:管控一體化,2006,22(9273):269-271.

      猜你喜歡
      時間軸圖層示例
      改革開放以來黨的歷屆三中全會時間軸
      大還是小
      時間軸上二階非線性非自治延遲動力系統(tǒng)的振動性
      2019年高考上海卷作文示例
      常見單位符號大小寫混淆示例
      山東冶金(2019年5期)2019-11-16 09:09:22
      時間軸里的“共和國記憶”
      金橋(2019年12期)2019-08-13 07:16:28
      “全等三角形”錯解示例
      巧用混合圖層 制作抽象動感森林
      圖層法在地理區(qū)域圖讀圖中的應用
      地理教學(2015年18期)2016-01-06 12:00:38
      淺析“遞層優(yōu)化法”在礦井制圖中的應用
      河南科技(2014年6期)2014-04-04 08:00:42
      肇庆市| 潢川县| 佳木斯市| 南汇区| 子长县| 特克斯县| 时尚| 鹿泉市| 平南县| 乌恰县| 南通市| 鹤庆县| 乌海市| 郴州市| 泽普县| 信阳市| 天津市| 双辽市| 上饶市| 仁化县| 北流市| 调兵山市| 浦江县| 章丘市| 阜南县| 芦溪县| 华安县| 龙泉市| 农安县| 郯城县| 龙南县| 和龙市| 壶关县| 保亭| 同心县| 清新县| 昌邑市| 通河县| 黄梅县| 灵丘县| 敦煌市|