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

Authorware综合技巧:在AuthorWare里面完成进度存取

2020-09-19 18:40:24
字体:
来源:转载
供稿:网友
很多软件的使用中都有存储进度和载入进度的功能,我为此想到如果能在authorware中实现进度存取也是非常有用的。希望本文介绍的方法对大家丰富自己的authorware作品有帮助。

  我是利用了authorware中文件属性的一个选项(resume)的功能实现进度存取。为了说明问题且不烦琐,这里我设计了可存取两个进度的例子。(本例用authorware4.0制作,源文件可从tcfwfw.yeah.net上下载)。

  1、函数说明。

  restart()------从头开始运行。

  quitrestart()-----下次运行时从头开始运行。

  jumpfile("文件名","变量名")-----退出当前执行文件,运行指定的文件,并把变量的值也传给指定文件的同名变量。也可以不给变量名,如:jumpfile("文件名”)。

  copyfile("源文件名", "目标文件名"),这是authorware的外部函数放在copyfile.u32文件中,调用这个函数可实现文件拷贝。

  2、变量说明。

  recordslocation----为系统变量,其值通常为为c:/windows/a4w_data。如你的windows装在d:/windows则其值为d:/windows/a4w_data。此目录是用来存放authorware的记录文件(*.rec)和其他文件。

  x-----为自定义变量。

  3、在authorware中文件属性的一个选项(resume)大家不常用到,见下图:

  它的作用是a4p文件打包成exe后,除了第一次,以后每次运行并不是从头开始运行,而是从上次运行结束的地方开始继续运行。那大家会想这个exe文件怎么知道上次运行到什么地方呢?熟知authorware的人都知道有个c:/windows/a4w_data是用来放置authorware的记录文件的。即使你没有装authorware,只要你运行了用authorware制作的作品这个目录会自动建立。

  当任何一个authorware文件(如1.a4p)文件属性被设置为rusume时,在此目录下就会有个记录文件存在(如1.rec)。你将文件打包(1.a4p---->1.exe)运行后退出,此文件(1.rec)就记录了文件1.exe的退出时的运行状况。当1.exe再次运行时并不从头开始运行,而是读取1.rec记录文件继续上次执行。

  在本例中需要生成两个authorware文件(1.a4p和2.a4p)且要打包后运行,1.a4p是主程序,2.a4p是用来处理记录文件的。两个文件打包后文件名分别为1.exe和2.exe。

  1.a4p制作流程如下:

  从新开始计算图标里为:restart()。

  退出计算图标里为:quitrestart()。

  存储进度一计算图标里为:x=1;jumpfile("2.exe","x")。跳到2.exe并把变量x的值传给2.exe中的x变量。(2.exe为2.a4p打包后的文件)

  存储进度二计算图标里为:x=2;jumpfile("2.exe","x")。

  载入进度一计算图标里为:x=3;jumpfile("2.exe","x")。

  载入进度二计算图标里为:x=4;jumpfile("2.exe","x")。

  2.a4p的流程如下:

  x=1计算图标里为:copyfile(recordslocation^"1.rec",recordslocation^"save1.rec");

  jumpfile("1.exe")。

  recordslocation为系统变量,它的值即为authorware存放记录文件的目录,1.exe为1.a4p打包后的文件。

  执行此计算图标作用是把1.rec复制一份取名为save1.rec。

  x=2计算图标里为:copyfile(recordslocation^"1.rec",recordslocation^"save2.rec");

  jumpfile("1.exe")。

  x=3计算图标里为:copyfile(recordslocation^"save1.rec",recordslocation^"1.rec");

  jumpfile("1.exe")。

  执行此计算图标作用是用save1.rec文件替代1.rec。

  x=4计算图标里为:copyfile(recordslocation^"save2.rec",recordslocation^"1.rec");

  jumpfile("1.exe")。

  决策判断图标里的设置如下:

  branch选项为to calculated path,根据x的值决定执行哪个分支。x的值是从1.exe传过来的。

  

  这里我把本例的运行过程给大家解释一下:一开始当然是运行主程序1.exe,当你需要保存进度时(假设你保存在进度一),就退出1.exe运行2.exe,将1.rec复制一份为save1.rec,再退出2.exe运行1.exe。当你需要调入进度一时,就退出1.exe运行2.exe,用save1.rec把1.rec覆盖掉,再退出2.exe运行1.exe。

  我在这里之所以在两个文件中跳来跳去是因为当1.exe在运行时1.rec文件是被保护的,无法对1.rec文件进行拷贝。所以我采用先退出1.exe,拷贝好之后再运行1.exe。大家放心,因为1.exe文件属性设置为resume,所以跳回去时还是在原处。每当运行1.exe,都会读取1.rec,我利用替换1.rec文件的方法实现进度的存取。大家如有其他好的方法请不吝赐教。

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