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

Authorware开发实例:定制Authorware闰年判断函数

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

  "春有百花夏有雨,秋有凉风冬有雪",四季更替谓之"年",在这"年"的概念里隐藏着一个"四年一闰"的说法,也就是所谓的"闰年"。现在世界通行的公历,平年365天,闰年366天,每四年一闰,每满百年少闰一次,到第四百年再闰,即每四百年中有97个闰年。闰年的判断算法虽然简单,却是计算机编程里的一个经典问题,常被程序员编制为通用函数进行各种场合的调用,今天我们就把它引入到authorware 6.5里,定制一个authorware的闰年判断函数!

  authorware 6.5是目前的最新版本,在这个6.5新版本中最引人注目的就是开始支持自定义函数功能,它允许把内部计算图标代码或者存储在外部文本文件的脚本,甚至是字符串自定义为函数--盼望已久的自定义函数功能终于浮现在广大authorware爱好者面前!虽然相对于高级语言开发平台来说,authorware 6.5的自定义函数功能显得相对"幼稚",但是它的出现无疑使authorware的脚本语句变得更加灵活强大,易于管理!我们马上来尝尝鲜,编写一个闰年判断函数for authorware版本。

  计算图标定义方式

  根据内部计算图标代码定义函数是最基本方法,启动authorware 6.5,开始创建一个具有非凡意义的自定义函数--闰年判断函数leapyear。

  1、 新建工程,命名自定义函数

  新建一个"leapyearfunction.a6p"文件;拖动一个计算图标到流程线上,并命名为"leapyear",这个名字将成为即将诞生的自定义函数的名称。函数命名需要注意唯一性,不能和其它图标或者函数同名,否则将不能正常调用执行。

  2、 编写闰年判断函数leapyear

  目前公认的闰年判断算法,满足下列二者之一,即为闰年:

  ① 能被4整除,但不能被100整除
  ② 能被4整除,且能被400整除

  根据这个算法,我们就可以在程序中实现闰年的逻辑判断。打开计算图标"leapyear",在里面写入以下代码:

if mod(args@"leapyear",400)=0|(mod(args@"leapyear",4)=0 & mod(args@"leapyear",100)<>0) then
result@"leapyear":=true
else
result@"leapyear":=false
end if

  打开计算图标"leapyear"的属性对话框(ctrl+i),把contains script function选项勾上(如图1),这意味着告诉系统把"leapyear"封装为自定义函数。确定后返回流程,发现计算图标"leapyear"的图标变化了(如图2),这样自定义函数"leapyear"就宣告诞生!



图1设置"leapyear"的属性对话框



图2 函数"leapyear"的图标变化

  此时执行菜单window >functions打开函数列表窗口,在script icons分类中就可以看到leapyear自定义函数的"真身"(如图3),你可以在函数描述(description)文本框里输入函数说明和其它使用信息(也可通过执行菜单modify > icon > description…来输入函数相关说明信息),例如输入:return:=leapyear("year")



图3 自定义函数"leapyear"

  3、 调用自定义函数leapyear

  函数编写封装的目的就是为主程序服务,我们立马派遣"leapyear"上岗。authorware 6.5中是通过系统函数callscripticon来调用内部计算图标脚本方式定义的函数的。我们编写的闰年判断函数leapyear为一返回型函数,返回值为true(1)或者false(0),true表示为闰年,false则相反。

  我们继续在计算图标"leapyear"后添加一交互图标"showyear",拖动一计算图标到其右边,选择为文本输入响应交互,并命名为"*"(即接受任何文本输入);打开该计算图标并输入以下代码:

if callscripticon(@"leapyear",entrytext)=true then
ifleapyear:="是"
else
ifleapyear:="否"
end if

  最后我们设置一下显示界面,双击打开交互图标"showyear",用文本工具输入{ ifleapyear },并勾选"update displayed variables"显示属性,存盘后即完成函数的调用工作。

[1] [2] 下一页  

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