999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于JSFL的Flash自動測評系統研究

2010-07-12 08:18:36王德東楊永華
關鍵詞:動畫系統

王德東,楊永華,盧 暢

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

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

1 閱卷方案比較

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

2 JSFL文件介紹

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

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

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

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

4 操作題測試項目

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

4.1 文檔(舞臺)屬性

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

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

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

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

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

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

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

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

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

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

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

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

4.4 庫、元件

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

4.5 筆觸、填充色、混色器

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

4.6 形狀識別

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

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

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

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

5 綜合舉例

閱卷系統可以采取兩種方式給出成績:一是在JSFL文件里輸出各種對象的屬性值,并保存為文本文件,然后利用其它高級語言(例如VB)來讀取這個文件和標準答案比對;另一種方法是利用JSFL直接評分,并將分數寫在文件里,然后利用VB來讀取這個分數。前者比較靈活,可以結合數據庫做成通用的系統,后者則可以設計一些比較復雜的題目,閱卷效率比較高。示例1采用了第一種方法,示例2則采取了第二種方法。另外,為了節約篇幅,程序中略去了錯誤處理代碼,具體閱卷時,需要詳細考慮容錯問題,例如考生沒有全部完成題目,此時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()等函數就可以進行閱卷,只要判斷存在第1行的數據,就可以認為正確繪制了一個圓。然后判斷第2、3行的內容,和標準答案比較即可給出分數。

5.2 示例 2

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

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

關鍵閱卷代碼:

5.3 建立題庫及閱卷程序

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

圖7 閱卷系統框架圖Fig.7 The framework of the assessment system

VB關鍵代碼:

6 結束語

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

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

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

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

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

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

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

猜你喜歡
動畫系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
做個動畫給你看
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
動畫發展史
基于PowerPC+FPGA顯示系統
我的動畫夢
文苑(2019年22期)2019-12-07 05:28:56
半沸制皂系統(下)
動畫批評融入動畫教育的思考
新聞傳播(2018年3期)2018-05-30 07:01:39
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 67194在线午夜亚洲| 亚洲黄色成人| 国产h视频免费观看| 国产在线一二三区| 亚洲欧美精品在线| 色妞www精品视频一级下载| 国产黄色爱视频| 国产成人综合亚洲欧洲色就色| 亚洲第一网站男人都懂| 一级在线毛片| 亚洲无码免费黄色网址| 97超爽成人免费视频在线播放| 国产成人91精品免费网址在线| 一级香蕉人体视频| 在线无码av一区二区三区| 亚洲永久色| 欧美高清视频一区二区三区| 国产精品永久免费嫩草研究院 | 国产在线精品99一区不卡| 欧美激情第一区| 日韩成人午夜| 97免费在线观看视频| 国产午夜无码专区喷水| v天堂中文在线| 国产精品大白天新婚身材| 狼友av永久网站免费观看| 69国产精品视频免费| 国产成人精品免费av| 蜜臀av性久久久久蜜臀aⅴ麻豆| 成人免费视频一区| 麻豆精品视频在线原创| 免费毛片全部不收费的| 成年看免费观看视频拍拍| 中文字幕在线观看日本| 国产人妖视频一区在线观看| 二级特黄绝大片免费视频大片| 亚洲va在线∨a天堂va欧美va| 99精品在线视频观看| 欧美区在线播放| 婷婷午夜天| 丝袜美女被出水视频一区| 久久中文无码精品| 日韩经典精品无码一区二区| 天天视频在线91频| 毛片久久久| 午夜影院a级片| 最近最新中文字幕在线第一页 | 亚洲欧美日韩视频一区| 任我操在线视频| 国产成人精品一区二区不卡| 成人午夜精品一级毛片| 亚洲无码高清一区二区| 一级毛片在线播放免费观看| 午夜精品福利影院| 99热这里只有精品2| 91探花在线观看国产最新| 国产一级无码不卡视频| 欧美亚洲国产视频| 国产福利小视频高清在线观看| 丝袜亚洲综合| 99热这里都是国产精品| 国产精品成人啪精品视频| 亚洲AV无码精品无码久久蜜桃| 国产在线视频二区| 在线播放国产一区| 亚洲日韩高清无码| 日韩精品高清自在线| 2020国产免费久久精品99| 91在线丝袜| 91精品久久久久久无码人妻| 精品無碼一區在線觀看 | 色悠久久综合| 亚洲精品无码不卡在线播放| 午夜性刺激在线观看免费| 精品视频一区二区三区在线播 | 国产精品任我爽爆在线播放6080 | 亚洲成A人V欧美综合天堂| 啦啦啦网站在线观看a毛片| 亚洲欧洲综合| 日本五区在线不卡精品| 国产精品福利导航| 亚洲国产精品一区二区第一页免|