天天看點

Director中讀寫外部文本的技術

 記錄、讀取外部文本在多媒體創作中經常接觸,通常用于記錄使用者資訊、動态更改程式使用文本資料等!這裡我們将簡要總結一下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功能,用于記錄我們需要在用戶端标記的資訊!

繼續閱讀