首页 > 设计 > 媒体动画 > 正文

Authorware类和函数:变量、函数和表达式地运用(三)实际示例

2020-09-19 18:41:19
字体:
来源:转载
供稿:网友

实例一:decision类,pathcount和repcount变量:
    本实例是利用pathcount来存储当前【判定】分支结构中反馈分支的总个数,repcount用了存储所执行的反馈分支的次数。使用这两个变量,我们可以计算出在该【判定】分支结构中,authorware退出该分支结构之前运行的反馈分支占分支总数的百分比。程序的逻辑结构如图6-17所示。
    要实现这种任务,我们需在分支结构的【运算】设计按钮中输入如下内容:

图6-17 实例一程序逻辑结构

    这里的percentcomplete为一个自定义变量,使用该变量来存储athorware所执行过的分支结构反馈分支占反馈分支总个数的百分比。
    我们可以在图6-17所示的“显示比例”【显示】设计按钮正文对象中插入该变量来显示百分比。

实例二:file类:filelocation变量
    filelocation变量包含运行程序模块所在的路径。例如:读者所执行的程序模块路径为:“d:/authorware/test/examp618.a4p”,则filelocation变量中存储的就是“d:/authorware/test/”。
    该实例的内容是将用户输入的用户名(username变量)、日期和成绩写入与所执行的程序模块在同样路径的studentdata.txt文件中。
    在程序的【运算】设计按钮中输入的内容如图6-18所示:
    我们利用writeextfile("filename", "string")函数将用户输入的信息写入文件中:

图6-18 实例二的程序设计

    writeextfile("filelocation^studentdata.txt", "username^tab^date^tab^score")

提示:
    在该函数中,符号“^”表示将该符号前面和后面的字符串连接起来,我们将在后面学习authorware支持的运算符号。

提示:
    “tab”键为该学生的各个信息之间在写入文件时提供一个间距。

实例三:framework类,currentpageid变量:
    currentpageid变量是一个数值型变量,用于存储当前显示页的设计按钮id标识;我们可以使用其引用变量来存储指定页的设计按钮id标识。
    本实例中,我们使用currentpageid变量存储的值来标记框架结构中的页,以便于在今后的程序运行过程中返回这些页,被标记的页的标识号存储在bookmark列表中,程序的逻辑结构如图6-19所示:

图6-19 实例三程序逻辑结构

    在make bookmark【运算】设计按钮对话框中输入如下内容:
    bookmark=insertline("bookmark",0, currentpageid)
    该表达式的意思是向bookmark中添加一个新页的id标识。
    在goto mark设计按钮中包含一个【运算】设计按钮,其中的内容如下:
            mark=getline(bookmark,1)
            bookmark=deleteline(bookmark,1)
    这两个表达式的含义是得到最新加入到bookmark列表中的页,然后再从列表中将该页的标识从列表中删除。经过这样的设置后,【定向】设计按钮就会跳转到mark 标记的页中来执行该页中的相关反馈信息。

注意:
    该实例中的三个函数insertline()、 getline()和deleteline()的具体使用方法参见附录。

实例四:general类,clickx和clicky变量:
    当用户最后单击鼠标按钮时,clickx包含从展示窗口左侧边框到鼠标点的位置的像素数,clicky包含从展示窗口上侧边框到鼠标点的位置的像素数,如图6-20所示。

图6-20 变量值的实际含义

    其中图6-20中的黑色边框为展示窗口。
    使用该变量,我们可以在游戏的制作中将一个大的区域划分为许多小的区域,并可以确定用户在哪一个区域中敲击了鼠标。从而,确定程序的运行方式。具体的划分区域的方法如图6-21中的【运算】设计按钮对话框中的内容。

图6-21用clickx和clicky去发现用户最后单击鼠标的位置

    使用该对话框,我们可以将展示窗口划分为20个像素宽的正方形小方格,当用户单击了鼠标后,我们就可以知道用户单击鼠标在方格中的位置。

实例五:graphics类:layer变量:
    layer变量用于存储当前(或指定的)【显示】设计按钮、【交互作用】设计按钮、【数字化电影】设计按钮所处的层数。在该实例中,我们在程序中插入一个数字化电影,使用layer变量的引用变量来设置数字化电影的层级别,使数字化电影的每一帧图像必须位于“背景”【显示】设计按钮中显示对象的前面。为了实现该特殊要求,操作步骤如下:
    (1) 选择数字化电影设计按钮,使其高亮。
    (2) 执行authorware所提供的【modify】菜单中【icon】子菜单的【properties】命令(快捷键为ctrl+i),或者用鼠标双击该【数字化电影】设计按钮,弹出图6-22所示的【数字化电影】属性对话框。

图6-22 设置【数字化电影】层的级别(设置层间相互关系)

    (3) 在该对话框的【layer】正文输入框中输入:
    layer@"背景"+1
    (4) 单击【ok】命令按钮结束设置。
    使用这种设置,当程序运行时,数字化电影所播放的每一帧都在“背景”【显示】设计按钮中所显示对象的前面。

实例六:icons类,displayx和displayy变量:
    这两个变量存储的是特定设计按钮内显示对象的中心与展示窗口边框的距离。displayx变量存储的是显示对象中心与展示窗口左边框的距离,以像素点为单位;displayy变量存储的是显示对象中心与展示窗口上边框的距离,以像素点为单位。

    程序的逻辑结构如图6-23所示。在该实例中,我们在“circle”【显示】设计按钮中绘制一个填充为蓝色的圆,设置该圆可以在一定区域中移动(使用【in aera】选项),然后设置一个【等待】设计按钮,给用户一个能移动圆的时间,在“圆在展示窗口的位置坐标”【显示】设计按钮中输入正文对象,在正文对象中插入引用变量。如图6-24所示。

 

 

图6-24在正文对象中插入引用变量

    程序的运行结果是:当用户移动圆到不同的位置时,在展示窗口的左上角将出现对象最终显示位置的坐标。程序的运行结果如图6-25所示。

 

图6-25程序的运行结果

实例七:interaction类,entrytext变量:
    entrytext变量存储的是最后在文本输入对话框中用户输入的文本。读者在创建一个文本输入对话框时,为了获得用户在文本输入对话框中输入的内容,需要使用该变量。
    该实例是让用户从一个交互作用的文本输入响应类型上输入姓名和学号,然后程序读取用户的学号和姓名,再将姓名和学号显示在展示窗口中。程序的逻辑结构如图6-26所示。

    使用【交互作用】分支结构的正文输入响应让用户输入相应的内容。
    【运算】设计按钮中使用entrytext变量将用户输入的内容赋给相应的变量。如:username等。【运算】设计按钮对话框中输入的内容如图6-27所示。
    在该对话框中我们输入username:=entrytext
    同样,在下一个【运算】设计按钮中输入如下内容:
    userid:=entrytext
    然后在“回显”【显示】设计按钮中显示用户输入的内容。

图6-27 【运算】设计按钮中的输入内容

实例八:time类,fulldate变量:
    该变量存储的是计算机系统当前的日期,其格式"1998年9月29日"。要在应用程序的演示过程中显示计算机系统当前的日期,则可以在正文输入对象中插入变量{fulldate}。

实例九:video类,videodone变量:
    videodone变量是一个逻辑型的变量,该变量有两种值,一种是true,另一种是false。在当前的视频信息播放结束时,该值为true。为了在程序执行到另一个设计按钮之前完成某个视频信息的播放,可以设置一个判定分支结构,并在图6-28所示的对话框中的【until true】正文输入框中输入videodone。例如,要使某个视频信息播放完毕后,立刻播放另一段视频信息,则可以在图示的对话框中进行设置。

图6-28 videodone使用实例

    除了上面读者所学习的九大类中的九个变量的实例外,在下面请读者熟悉笔者在工作中经常使用的几个变量。
    (1) choicenumber:authorware中的系统变量choicenumber存储的是当前交互循环中用户匹配的最后响应的编号,响应路径从【交互作用】设计按钮的左边至右边依次编号,编号从1号开始。
    我们可以使用该变量来判定是否要显示特定的反馈。例如,如果用户匹配的响应是交互作用中的前三个响应中的任意一个,那么程序将快放这三个反馈分支中的内容。否则,以正常速度播放,如图6-29所示,条件响应的类型可以设置为表达式:choicenumber<4。

图6-29choicenumber在条件响应中的使用

注意:
    在程序中,我们要随时跟踪choicenumber的使用位置,如果在交互分支结构中,增加或减少了路径的个数,则需要对表达式进行修改
    (2) hottextclicked:当用户用单击或双击作为触发条件来敲击文本的触发器时,hottextclicked存储用户单击或双击触发的敲击文本。
    使用该变量可以为读者作品中的目录创建超级链接。当用户单击热文本时,可以使用【导航】设计按钮在框架结构中查找每一页上的关键词是否为hottextclicked所存储的值,如果找到该值,则程序模块就跳转到该页中去执行相应的内容。
    (3) iconid: iconid变量存储的是特定设计按钮的唯一的数字标识符。当【导航】设计按钮与一个【运算】设计按钮一起使用时,该变量具有决定性的意义。

    该变量还可以连接其它的变量和函数。例如读者可以使用【擦除】设计按钮来擦除基于该变量值的一个设计按钮中的对象。使用方法如图6-30所示。

图6-30 使用iconid命令返回设计按钮的id标识

    (4) lastlineclicked:lastlineclicked存储的是用户单击一个文本对象的某一行的行号。行是用回车符定义的。
    读者可以利用该变量的特性,来创建一个书签系统。当用户单击一个书签名列表中的某一行文本时,authorware利用该变量来识别单击的是哪一行。然后,我们可以通过所在行数来得到其它相关的信息,从而,执行与该行有关的双击按钮。
    (5) timeoutlimit:在程序跳转到由系统函数timeoutgoto指定的设计按钮之前,timeoutlimit以秒为单位来标志模块等待用户某种类型活动的时间量。
    在演示会和展览会上,我们可以用该变量来控制系统空闲多长时间。一旦控制时间到,程序将跳至指定的双击按钮来执行该设计按钮中的内容。如图6-31所示。

图6-31 timeoutlimit控制系统空闲时间

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表