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

基于Flex的英語課件數據模型設計與實現

2010-12-31 00:00:00
新聞世界 2010年7期

【摘要】本文針對當前英語課件開發存在的主要問題,結合英語課件的特點,提出了基于Flex的英語課件開發的RIA技術解決方案。并著重描述了其中最關鍵的數據模型的設計與實現,以期為同類技術開發提供思路和借鑒。

【關鍵詞】英語課件 Flex RIA

一、引言

隨著信息技術的發展與國內高校教學信息化的逐步深入,多媒體輔助教學課件的應用及其相關研究探索也隨之逐步擴大和加深。在外語教學領域,多媒體課件的使用尤其廣泛和深入。這其中的原因亦不難理解,相對于傳統的黑板教學,多媒體課件通過成熟的網絡技術和信息技術提供了諸如圖片、音頻、視頻和動畫等更豐富的教學資源,對于學生的外語聽說能力學習起到了不可忽視的重要作用。

目前國內以英語為主的外語多媒體教學課件,一般由英語教學專家進行教學設計、軟件開發人員設計開發,并由出版社或教育軟件公司以光盤為媒介出版發行。其作為一種桌面應用程序,響應速度快,資源豐富,以復雜多樣的交互手段結合文字、聲音、圖片及視頻等媒體素材模擬有利于英語學習的各種交際情境。然而筆者通過對國內多個出版社發行的英語課件調研后發現,現有英語課件由于開發技術較為落后,系統設計不夠合理等原因,其開發過程或多或少都存在如下一些問題:1、可復用性低?,F有大部分英語課件的開發技術并不支持面向對象開發方法,或僅對面向對象提供較低級的支持,從而導致程序代碼的可復用性較低。2、可維護性差。英語課件學習內容規模龐大,用戶運行環境復雜,課件在開發和使用的過程中出問題的可能性非常大?,F有大部分英語課件開發技術缺少對面向對象的支持,同時也缺少軟件工程思想和方法的應用,因此維護升級均為較困難。3、開發成本高。現有英語課件采用的開發技術大多為針對具體內容的一次性開發。隨著課件需求的增加和交互復雜性的提高,這種開發方式的弊端逐漸暴露出來,開發周期越來越長,成本越來越高。

基于上述分析,筆者認為尋求新的技術解決方案以合理的解決英語課件的上述問題,已成為課件開發者們亟待解決的重要問題。而隨著富互聯網應用(RIA,Rich Internet Applications)的發展,各種RIA技術的不斷出現為英語課件的開發提供了有效且可行的技術路線和解決方案。其中Adobe Flex作為用于開發RIA客戶端的主流技術,其構建的RIA應用提供內容豐富的用戶界面,且完全支持面向對象的開發,完全符合課件開發的需求。

本文首先簡要介紹Flex開發框架,之后對在整個系統中最重要的數據模型設計與實現做詳細介紹,最后對該開發技術的應用效果進行總結和歸納。

二、Flex和Cairngorm框架

Adobe Flex是Adobe公司開發的支持RIA開發和部署的集成開發環境,主要面向企業級的開發。它采用ActionScript 3作為核心編程語言,并被編譯成swf文件運行于FlashPlayer虛擬機里。ActionScript 3是一種強大的面向對象的編程語言,基于ECMAScript Language Specification, Third Edition①。Flex是目前RIA客戶端開發技術的主流,它提供了豐富的控件和功能強大的基礎類庫。利用Flex我們可以很容易的開發和部署RIA應用。

Cairngorm框架是在Adobe Labs(Adobe ,2006)發布的一款開源輕量級RIA開發框架。Cairngorm框架由Value Object、ModelLocator、View、Front Controller、Command、Delegate六個模塊組成,按照數據模型、用戶視圖以及控制邏輯對程序代碼進行分類②。其執行過程簡要描述如下:FrontController負責監聽事件,當事件發生時,FrontController調用Command對象執行相關操作。Command對象調用Execute方法訪問服務,最后由onResult方法處理返回的結果,異常信息則由onFault方法處理。View通過綁定機制根據ModelLocator中的數據創建用戶界面,當ModelLocator中數據被修改時,數據綁定機制將負責更新視圖。

三、英語課件數據模型設計與實現

由于數據模型包含了英語課件中所有的學習內容,關系著課件最主要功能的實現,是系統設計的核心,因此,本文將著重討論這一部分內容。一套英語課件通常分為8-10個單元,每個單元可能包括課文學習、單詞學習、選擇題、填空題、匹配題、判斷題、翻譯題、寫作題、電影欣賞、音樂欣賞、看圖說話等大量學習內容。這些學習內容包含了大量的文字、圖片、聲音、視頻等各種數據,并且由于題型眾多,交互邏輯和界面表現復雜,采用面向內容的一次性開發方式常常導致課件程序規模龐大而復雜。

同時,我們注意到每個單元雖然學習內容不同,但學習內容的組織結構基本相同,即每個單元包含了相同的題型,因此每種題型的實現代碼在課件不同單元中均可復用。此外,即使是不同的英語課件,學習內容結構不同,但題型仍然具有相對穩定性,故每種題型的實現代碼在不同課件間亦可復用。另一方面,對于不同的練習題型,有時也具有非常相似的數據格式以及交互邏輯。由此可見,對各種題型的可復用結構進行合理抽取,是提高課件代碼可復用性的關鍵。

基于上述分析,我們首先設計所有題型的基類ExerciseModel。其中,課文學習和單詞學習也分別作為題型的一種。ExerciseModel僅簡單的記錄了題型基本信息。通過添加其它數據類型可以派生出各種具體題型。其具體設計見表1:

表1 ExerciseModel類功能表

完成基類的定義之后,根據不同題型所需的不同數據對象,從ExerciseModel類派生該題型子類的辦法即可實現不同的題型。由于英語課件題型眾多,不可能一一列舉,下面我們分別以具有代表性的課文學習和填空題來闡述具體學習內容的設計。

1、課文學習

TextModel類繼承自ExerciseModel類,實現課文學習這部分課件內容。TextModel類包含課文題目、課文作者、每個段落的內容和翻譯、生詞、背景知識等數據,其中每個段落的數據由TextItem類保存和傳遞。TextModel類添加Title和Author屬性記錄課文題目與作者,同時TextItem類保存每個段落的數據模型,其功能設計見表2。

表2 TextItem類功能表

此外,每個屬性均有對應的Get、Add和Remove三個方法實現該屬性的獲取、添加和刪除。例如,保存課文內容的Para屬性可調用GetPara、AddPara和RemovePara方法,分別實現獲取、添加和刪除課文的操作。以課文生詞為例,其實現代碼如下:

private function init(evt:FlexEvent):void {

var nw:TextArea=FormItem(evt.currentTarget).itemTextArea as TextArea;

nw.htmlText = txt;

nw.selectable = true;

lbl.addEventListener(TextEvent.LINK,nw _link);

2、填空題

填空題包含習題題干、參考答案、提示信息等數據。提供評測、創建和還原用戶學習數據備忘錄等接口。其中評測為課件提供多種自動評測策略,比如:帶首字母的評測、不帶首字母評測等。用戶學習數據備忘錄對象用于保存用戶答案、評測情況等。

FillBlankModel類定義為填空題的數據模型。它由FillBlankItem類構成,FillBlankItem類對應填空題的每個Question的數據模型,需要保存題干、參考答案和用戶答案等數據以及評測接口。此外,FillBlankModel類和FillBlankItem類都提供備忘錄模式,以XML格式保存用戶的答題和評測情況。同時通過重載CairngormError實現CheckStrategy類作為評測策略基類,提供抽象接口Check()。FillBlankCheck類繼承CheckStrategy基類,實現Check()接口,提供單個小題評測的能力。FillBlankItem類設計見表3。

表3 FillBlankItem類功能表

與TextModel類相同,FillBlankModel類的每個屬性均有對應的Get、Add和Remove三個方法實現該屬性的獲取、添加和刪除。FillBlankModel類主要代碼簡化如下:

//打包填空題模型XML

override public function get Data():XML

{

……

//初始化填空題模型

override public function set Data(Value:XML):void

{

……

//處理屬性_CheckStrategy=CheckStrategyManager.GetInstance().GetStrategy(Value.questions.@checkType);

_IsQuestionCheck= Value.questions.@isQuestionCheck.toLowerCase()== \"true\";

//處理小題

var questionsList:XMLList=Value.questions.question;

……

}

每個小題的數據模型FillBlankItem類主要代碼簡化如下:

//生成answers節點

var answers:XML=;

……

//初始化本小題數據

public function set Data(Value:XML):void{

……

if(XMLUtilities.HasNode(Value,\"answers\")){

……

//處理提示

if(XMLUtilities.HasNode(Value,\"tips\"))

……

//處理單詞短語框

private function parseContent():void

……

四、應用效果分析

采用Adobe Flex和Cairngorm框架進行英語課件的設計與開發具有很強的優勢。首先,具有較高的可復用性。一方面通過定義英語課件的架構及通用模型,便于在后續的開發中重復利用;另一方面實現了程序與源文件分離,這樣不僅可以重復利用英語課件的多媒體素材和腳本數據,而且還可以通過替換源文件來重復利用代碼。其次,具有較好的可維護性。通過在開發過程中運用軟件工程的思想和方法,遵循高內聚、低耦合的開發原則,實現課件的模塊化開發,使得程序代碼結構清晰,可讀性好,便于為后續維護或二次開發提供相應接口,提高了英語課件的可維護性。

當然,該解決方案也有一定的弊端。主要在于其采用的設計模式對可復用結構進行了較高層次的抽象,同時各個模塊間嚴格遵循高內聚、低耦合的開發原則,導致系統的實現難度大大提高。因此,在實際開發過程中,應根據具體情況對此進行良好地平衡,以盡可能降低開發代價。■

參考文獻

①Adobe. 2001.Adobe Flex[EB/OL].Adobe Labs. http://labs.adobe.com/technologies/flex/

②Digimmersion.2006.Flex Application Design for Cairngorm[EB/OL]. http://www.digimmersion.com

(作者單位:中國科學技術大學現代教育技術中心)

責編:姚少寶

主站蜘蛛池模板: 在线无码九区| 免费国产黄线在线观看| 国产真实乱了在线播放| 亚洲精品视频免费看| 国产69精品久久久久妇女| 香港一级毛片免费看| 中文字幕在线欧美| 国产免费久久精品44| 好紧太爽了视频免费无码| 亚洲日韩高清无码| 国产精品美女自慰喷水| 精品一区二区三区自慰喷水| 国产黄在线免费观看| 狠狠色狠狠综合久久| 国产日本欧美亚洲精品视| 亚洲丝袜第一页| 欧美笫一页| 丁香婷婷激情网| 久操线在视频在线观看| 97视频免费看| h视频在线观看网站| 亚洲欧美在线综合一区二区三区| 国产区网址| 久久亚洲高清国产| 亚洲永久色| 久久国产av麻豆| 热九九精品| 欧美色丁香| 欧美啪啪网| 亚洲最猛黑人xxxx黑人猛交| 无码人中文字幕| 色哟哟精品无码网站在线播放视频| 亚洲永久色| 无码精油按摩潮喷在线播放 | 午夜日b视频| 性色在线视频精品| 国产白浆在线| 毛片在线看网站| 成年人久久黄色网站| 高清无码手机在线观看| 国产人人乐人人爱| 无码高潮喷水专区久久| www精品久久| 亚洲av日韩av制服丝袜| 成年人视频一区二区| 久久 午夜福利 张柏芝| 五月天福利视频| 久久国产精品电影| 99re热精品视频国产免费| 久久精品66| 国产乱子伦视频在线播放| 国产精品无码翘臀在线看纯欲| 广东一级毛片| 日韩精品亚洲人旧成在线| 天堂成人av| 国产91视频免费观看| 搞黄网站免费观看| 亚洲性日韩精品一区二区| 国产精品综合久久久| 亚洲区一区| 国产男女XX00免费观看| 熟女日韩精品2区| 免费观看男人免费桶女人视频| 亚洲最大福利网站| 亚洲精品成人福利在线电影| 热这里只有精品国产热门精品| 狼友视频国产精品首页| 亚洲不卡影院| 国产成人av大片在线播放| 日韩国产欧美精品在线| 久久久四虎成人永久免费网站| 欧美一级夜夜爽| 国产青榴视频| 亚洲欧洲日韩久久狠狠爱| 91无码人妻精品一区| 四虎永久在线| 黄色污网站在线观看| 在线色国产| 激情亚洲天堂| 久久99热66这里只有精品一| 色综合中文| 永久在线播放|