荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: hellrock (地狱乐队I~地狱之王), 信区: Multimedia
标  题: 在AuthorWare中实现进度存取
发信站: BBS 荔园晨风站 (Sat Feb 10 13:18:08 2001), 转信

  很多软件的使用中都有存储进度和载入进度的功能,我为此想到如果能在AuthorWa
re中实现进度存取也是非常有用的。希望本文介绍的方法对大家丰富自己的AuthorWare
作品有帮助。

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

  1、函数说明。
  Restart()------从头开始运行。
  QuitRestart()-----下次运行时从头开始运行。
  JumpFile("文件名","变量名")-----退出当前执行文件,运行指定的文件,并把变
量的值也传给指定文件的同名变量。也可以不给变量名,如:JumpFile("文件名”)。

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

  2、变量说明。
  RecordsLocation----为系统变量,其值通常为为c:\windows\a4w_data。如你的wi
ndows装在d:\windows则其值为d:\windows\a4w_data。此目录是用来存放AuthorWare的
记录文件(*.rec)和其他文件。
  X-----为自定义变量。

  3、在AuthorWare中文件属性的一个选项(Resume)大家不常用到,见下图:
  它的作用是a4p文件打包成EXE后,除了第一次,以后每次运行并不是从头开始运行
,而是从上次运行结束的地方开始继续运行。那大家会想这个EXE文件怎么知道上次运行
到什么地方呢?熟知AuthorWare的人都知道有个c:\windows\a4w_data是思扑阃急曜饔檬前?
.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.ex
e传过来的。

  这里我把本例的运行过程给大家解释一下:一开始当然是运行主程序1.exe,当你需
要保存进度时(假设你保存在进度一),就退出1.exe运行2.exe,将1.rec复制一份为s
ave1.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文件的方法实现进度的存取。大家如有其他好的方法
请不吝赐教。
[电脑报 作者:方巍]

--
魔岩设计工作室-Rock Studio*[0

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: bbs.stu.edu.cn]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店