CSDN博客

img threem

Director中读写外部文本的技术

发表于2004/6/22 21:15:00  1659人阅读

 记录、读取外部文本在多媒体创作中经常接触,通常用于记录用户信息、动态更改程序使用文本资料等!这里我们将简要总结一下director中对于外部文本的利用。
读取外部文本

准备工作:
建立两个纯文本文件"C:/Data.txt"、"C:/Data.cus",内容均为“this is text file!”
方法有三:
1. 使用插件:Fileio.x32
Fileio.x32是director默认附带的插件,可以实现文本的读取、写入。以下函数实现读取某个纯文本文件。而无关于文件后缀名:

on AGgetpref theFilename
  --建立xtra实例
  fileOutIn=new(xtra "Fileio")
  --检测是否成功生成xtra实例,出错则返回信息-1
  if not ObjectP(fileOutIn) then
    return -1
  end if
  --打开外部文本文件
  fileOutIn.openfile(theFilename,1)
  --读去文本数据
  FileTxt=fileOutIn.readFile()
  --关闭文件
  fileOutIn.closeFile()
  --从内存中清除xtra实例
  fileOutIn=void
  --如果读取的结果是空则说明文本不存在、返回结果-1
  if FileTxt=void then
    return -1
  else
    return FileTxt
  end if
end

使用范例:
以下指令读取外部纯文本格式文件C:/Data.Cus,该文本内容是“this is text file!”(你可以先自己建立这个文件)
put Aggetpref("C:/Data.Cus")
--“this is text file!”

提示:对于文件后缀名无关的纯文本文件,我们可以伪装自己程序相配合的“格式”。尽管里面是纯文本,但是我们同样可以进行相关的特殊处理,以至于一般用户不能直接利用。

2. 使用演员的filename属性
假设目前你的电影中已经存在文本演员”word”,那么以下代码将文件C:/Data.txt中的文本读取到内部,成为演员”word”的文本内容:

member("word").filename="C:/Data.txt"

注意:使用这个方法时候,必须存在操作的对应演员。也就是说他是修改演员外部连接目标的途径来实现的。同时文本读取以后演员何这个外部文件就没有直接关系了。
提示:这个方法只能使用txt,rtf文本文件,不能自定义文件后缀名。假如你读取“C:/Data.Cus”,演员将不可用。从这个我们也可以知道director对于外部文件的支持是首先基于文件后缀名的判断的。
3. 使用指令:importFileInto
importFileInto 使得director能够通过lingo指令导入外部元素,包括director支持的一切媒体元素。以下是用本指令获取外部文本的代码:
importFileInto member 11, " Data.txt "
提示:这个方法中涉及的目标演员可以存在也可以不存在。对于不存的目标演员,director将自动建立。如果已经存在目标演员,则原先的演员被替换。


写入外部文本
写入外部文本通常使用Fileio.x32
以下函数实现生成外部任意后缀名的纯文本格式文件:

on AGsetpref theFilename,stringIn
  if not stringP(stringIn) then
    return -1
  end if
  fileOutIn=new(xtra "Fileio")
  if not ObjectP(fileOutIn) then
    return -1
  end if
  theFilename=theFilename
  fileOutIn.openfile(theFilename,1)
  fileOutIn.delete()
  fileOutIn.createFile(theFilename)
  fileOutIn.openfile(theFilename,1)
  fileOutIn.writeString(stringIn)
  fileOutIn.closeFile()
  fileOutIn=void
  return 1
end


范例:以下代码生成内容为“Welcome to mobiusclub ”的纯文本文件”C:/Welcome.dct”:
AGsetpref("C:/Welcome.dct","asdfasdf")

补充:
getpref 和 setpref 作为director自提供的信息记录方式,可应用于包括网络的信息读写,但是限制就是数据读取必须定位在主程序同级的Prefs目录中,格式必须为txt纯文本.
提示:
getpref 和 setpref 在shockwave中可以实现等价于ie的cookie功能,用于记录我们需要在客户端标记的信息!

0 0

相关博文

我的热门文章

img
取 消
img