您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 园林工程 > Authorware实例15--自动字典
实例15自动字典348Authorware实例15自动字典主要内容在该实例中,我们设计了一个自动的字典,在文本中我们设置了一些热文本,当我们用鼠标单击该热文本的时候,屏幕上会弹出一个小的窗口,在这一小的窗口中,显示的是对单击的热文本的解释。使用该实例中的方法,我们在作品中可以将一些特殊的单词或语句设置为热文本,当用户在使用作品的时候,在遇到不理解的词或语句时,只需用鼠标单击该单词或语句,就可以弹出一个对该单词或语句解释的对话框。读者可以随时查阅这些词或语句的含义。我们在发行作品的时候,只需附加上一个文本文件,在作品上就可以实现实时的查阅功能。基本操作提要在该实例中,我们使用了Authorware所提供的如下内容:【显示】设计按钮的使用。【框架】结构。【交互作用】分支结构。【运算】设计按钮。设计按钮的装饰。Authorware提供的系统函数和系统变量以及用户的自定义变量。文本风格的定义和超文本链接功能。在该实例中,我们使用Authorware所提供的系统函数,使该应用程序和外部文件相结合起来,实现一个字典的功能。在该实例中,我们仍然以介绍变量和函数的使用为主,让读者进一步熟悉Authorware函数和变量的使用方法,让读者体会到Authorware函数和变量的强大功能。技巧:事实上,Authorware所提供的系统变量和函数已经基本能够满足我们程序设计的需要,但我们要进一步地了解和学习系统函数和系统变量的含义和使用方法,将各种系统函数和系统变量有机地结合起来,实现特定的功能。系统变量和系统函数仅仅是一个基础的工具和砖瓦,需要用我们灵活的大脑来将它们组合起来,实现更高级的功能。实例过程在使用Autorware进行编程之前,我们需要做一些准备工作,具体工作内容如下:我们需要创建一个纯文本的字典。我们可以使用任意一个文本制作工具来创建该文本文件,在该文本文件中包含的是我们将要在程序中要用到的单词或语句,以及对它们的解释。我们事先将这些内容准备好,就象一个字典一样,当需要的时候,程序会打开该文件,在该文件中查找需要的内容,然后将查到的内容显示到程序的显示框中。实例15自动字典349(1)准备文本文件内容:在该实例中,我们使用Windows95的记事本来创建该文本文件,如图15-1所示。在创建文本的时候,我们要使用下面的格式:“单词或语句”=“解释”例如“sample=例子”,其中“sample”为我们要解释的单词,“例子”为我们的解释。提示:在该格式中,等号两边可以是全角字符,但是,该格式中的等号必须是英文状态的半角字符。在该实例中,该格式我们是约定的格式,读者也可以在程序中创建自己的格式。文本文件中内容的格式必须和程序所认定的格式相一致。提示:请读者注意,该文本文件必须和该程序的源程序存储到同一个目录下面,否则Authorware将找不到该文本文件。(2)保存创建的文本文件,文件名设置为popup.txt。(3)在创建程序前,让我们对该应用程序的整体有一个大致的了解。图15-2所示为该应用程序的主设计窗口中的主流程线。在该流程线上我们看到有三部分组成。第一部分:一个【运算】设计按钮,该设计按钮的功能是从外部文本文件中读取文本文图15-1使用记事本创建文本文件图15-2程序的逻辑结构实例15自动字典350件中的内容,并将该内容存储在一个变量中。第二部分:一个【框架】结构,为程序的演示部分,也是程序的主体部分。事实上,如果我们将该程序应用到实际中,该部分就是用户的工作部分。字典的功能只是来辅助用户对该部分的使用。第三部分:一个只有一个分支的【框架】结构,该框架结构实现的是当用户单击热文本后,对用户单击的热文本进行处理,在外部文件的内容中查找同热文本相匹配的内容,然后在展示窗口中显示热文本的解释。(4)程序的设计:步骤1打开新文件:使用【Modify】菜单中【File】级联菜单的【Properties】命令选项弹出【Properties】对话框(快捷键为Ctrl+Shift+D),在该对话框中选择【Playback】命令按钮,弹出图15-3所示的【Properties】对话框。在该对话框中,我们在【Size】选项列表中选择【Variable】选项,表示展示窗口的大小和位置是可以改变的,以用户最后一次改变的大小和位置为准。图15-3文件的属性设置【Properties】对话框图15-4【运算】设计按钮的对话框图15-5创建glossaryText变量实例15自动字典351步骤2读取外部文件的内容:(1)拖曳一个【运算】设计按钮到程序的主流程线上,命名为“读取文件”。(2)双击打开该设计按钮,弹出图15-4所示的【运算】设计按钮对话框。在该对话框中的输入内容如下所述:glossaryText:=ReadExtFile(FileLocation^popup.txt)该表达式的含义是将popup.txt文本文件中的内容作为一个字符串(包括分行符)赋值给自定义变量glossaryText。如图15-5所示。知识点:FileLocation:为系统变量,该变量存储的是当前所执行程序所在的位置。“^”符号:该符号为连词符,将该符号两端的字符串连接成为一个字符串。在该实例中,FileLocation^popup.txt表示的是popup.txt文件所处的位置。例如:如果我们所执行的程序位置为:”D:\book\examp\”,则FileLocation变量的值为“D:\book\examp\”,FileLocation^popup.txt表示“D:\book\examp\popup.txt”,为文件所处的位置和文件名。ReadExtFile():语法格式为ReadExtFile(filename)在本实例中该函数的功能是将FileLocation^popup.txt中的内容作为一个字符串读出来。然后赋值给变量glossaryText。步骤3使用Ctrl+R打开展示窗口,设置展示窗口的大小和位置。方法参见实例10。步骤4添加【框架】结构:(1)拖曳一个【框架】设计按钮到程序的主流程线上,位于【运算】设计按钮后,命名为“项目”。(2)双击该【框架】设计按钮,打开框架设计按钮内部结构,如图15-6所示。将该内部结构对于本实例多余的内容删除,仅留下如图15-7所示的交互作用分支路径,实现到下一页的功能。(3)双击打开图15-7中的响应类型图标,弹出响应类型属性对话框,单击该对话框中的【Button】命令按钮,来设置【Button】对话框,如图15-8所示。在该对话框中,【Location】输入如图所示的数字,使按钮可以显示在调整后的展示窗口中。技巧:当我们改变展示窗口的大小后,某些显示内容,如我们显示的按钮,在新调整后的展示窗口中我们不能看到,需要在图15-8所示的【Location】正文输入框中输入合适的数值使显示对象在展示窗口中出现。然后才可以使用鼠标来调整显示对象的位置。图15-6【框架】按钮内部结构图15-7修改后的【框架】按钮内部结构实例15自动字典352(4)单击该对话框的【Response】命令按钮,弹出图15-9所示的【Response】对话框。(5)将按钮的响应设置为【Perpetual】,其它相关选项的设置如图15-9所示。(6)单击图15-9中左上方的【Buttons】命令按钮,弹出图15-10所示的【Buttons】对话框。(7)在该对话框中选择合适的按钮形状。在该实例中我们使用图示的按钮形状。提示:如果用户对该对话框中所提供的按钮形状不理想的话,读者可以使用该对话框中的【Add】命令按钮来弹出添加按钮形状对话框,来引入新的形态的按钮形状。(8)单击15-10中的【OK】命令按钮,结束对按钮的设置。(9)单击15-9所示的【OK】命令按钮,结束对响应类型属性对话框的设置。步骤5添加另外一个框架设计按钮:(1)拖曳一个【框架】设计按钮到图15-11所示的流程线上,命名为“特殊单词”。(2)双击打开该【框架】设计按钮,修改其内部结构,将Authorware默认的控制面板和控制按钮全部删除,删除后的内部结构如图15-12所示。(3)拖曳一个【映射】设计按钮到图15-11所示的“特殊单词”框架结构下,命名为“词汇表”。图15-8按钮响应的【Button】对话框图15-9按钮响应的【Response】对话框图15-10“Button”对话框实例15自动字典353(4)双击打开该【映射】设计按钮,来设置特殊的响应。步骤6设置“词汇表”【映射】设计按钮:注意:该步骤的操作都是在【映射】设计按钮的设计窗口中进行的。(1)拖曳一个【运算】设计按钮到设计窗口的流程线上,命名为“查找单词的解释”。(2)双击打开该【运算】设计按钮,在该对话框中输入源程序,如图15-13所示。提示:该【运算】设计按钮中源程序实现的功能是在读入内存的文本文件内容中查找所单击的热文本,然后显示文本文件中对该热文本的解释。(3)在该对话框中输入的内容如下所述:Definition:=为自定义变量Definition赋初值。temp:=LowerCase(HotTextClicked)^=该自定义变量temp存储的是热文本同“=”连接的字符串。例如热文本为“some”,则图15-12新建【框架】按钮内部结构图15-11程序的逻辑结构图15-13在【运算】设计按钮对话框中输入源程序实例15自动字典354temp=“some=”。提示:HotTextClicked系统变量存储的是用户单击的热文本。repeatwithi:=1toLineCount(glossaryText)glossaryLine:=GetLine(glossaryText,i)ifFind(temp,LowerCase(glossaryLine))=1thenDefinition:=SubStr(glossaryLine,Find(=,glossaryLine)+1,CharCount(glossaryLine))exitendifendrepeatDefinition:=GetLine(glossaryText,LineCount(glossaryText))该循环的目的是在文本文件的所有行中,查找和热文本相匹配的行,然后将该行中对热文本的解释内容赋给变量Definition。各程序所执行的功能含义如下:·glossaryText变量存储的是文本文件中所有的内容,包括分行符。·LineCount(glossaryText)函数用来取得文本文件的行数。·该循环用glossaryText中文本的行数来控制repeat循环的次数,也就是说在整个文件的所有行中寻找热文本。·glossaryLine:=GetLine(glossaryText,i)的功能是将glossaryText中第I行的内容赋值给glossaryLine变量。·Find(temp,LowerCase(glossaryLine))=1:LowerCase()函数的功能是将字符串中的所有字符转化为小写字母。Find()函数的功能是在LowerCase(glossaryLine)字符串中寻找temp变量所存储的字符串。如果找到了该字符串,Find()函数的返回值为与temp字符串相匹配首位字符在LowerCase(glossaryLine)字符串中的位置。例如:Lyric:=TheraininSpainfallsmainlyontheplainStart:=Find(?ain,Lyric)?ain匹配rain,所以Find()函数的返回值Start是5。·ifFind(temp,LowerCase(glossaryLine))=1thenDefinition:=SubStr(glossaryLine,Find(=,glossaryLine)+1,CharCount(glossaryLine))exitendif该判断循环的目的是检查查找到的热文本是否是一行的开始位置。如果是开始位置,则将等号后的解释内容赋给Defin
本文标题:Authorware实例15--自动字典
链接地址:https://www.777doc.com/doc-4530872 .html