文章作者:爱伊
多媒体开发中常常会碰到一些Lingo数据类型需要保存,可以是一个字符或者一个列表等等,虽然用file IO xtra也可以完成类似的操作,但是代码复杂,且容易出错。这里推荐一款Lingo数据类型的保存插件 PropSave Xtra,代码简洁,功能实用。
主要功能和特点:
1..直接保存Lingo数据类型到硬盘,而不需要实现转换为字符串。
2..读取之前保存的内容,可以百分百还原为之前保存的数据类型。
3..所保存的文件内容是乱码的,可以防止保存信息泄漏。
4..保存时,可以加参数,如加 #prefsFolder: true,则会将指定数据按照指定文件名保存到系统目录中,而不需要你判断系统目录的所在位置。
简洁的代码:
用FileIO保存一个有几个值的列表时,代码如下:
outputList = [ 1234, #symbol, 1.002, [ 1, 2, 3 ], rect( 4, 5, 6, 7 ) ]
filePathName = the moviePath & "testFileIO"
fileObj = new( xtra "fileIO" )
if not objectP( fileObj ) then return -1
fileObj.openFile( filePathName, 1 )
err = fileObj.status()
if not ( err ) then ---FILE EXISTS, DELETE
fileObj.delete()
else if ( err and not ( err = -37 ) ) then return err
fileObj.createFile( filePathName ) ---CREATE NEW
err = fileObj.status() if ( err ) then return err
fileObj.openFile( filePathName, 2 ) ---OPEN THIS FILE, WRITE PERM
err = fileObj.status() if ( err ) then return err
fileObj.writeString( string( outputList ) ) ---CONVERT TO STRING, WRITE
fileObj.closeFile()
用PropSave Xtra保存上述列表,只有几行简洁的代码:
outputList = [ 1234, #symbol, 1.002, [ 1, 2, 3 ], rect( 4, 5, 6, 7 ) ]
filePathName = the moviePath & "testFileIO"
savePropsToDisk( filePathName, outputList )
支持数据类型:
#void
#integer
#symbol
#string
#picture
#float
#list
#point
#rect
#propList
#member
#castLib
#sprite
#soundSprite
#color
#date
#media* 部分支持,对field 演员和button 演员(pushbutton, radiobutton, checkbox)的支持不太好,建议避免保存field 演员和button 演员的media。
不支持数据类型:
#xtra
#instance
#object
#script
保存范例代码:
outputList = ["大家好",1234,"Hello!!!",#symbol, 1.002, [1,2,3], rect( 4, 5, 6, 7 ),point(1,2),[[1,2,3],[1,2,3]]]
filePathName = the moviePath & "savedata.dat"
-- 保存列表 outputList 到指定文件 filePathName,要有完整路径名。
savePropsToDisk(filePathName, outputList)
-- 保存列表 outputList 指定文件 "savedata.dat",不要有完整路径名,自动保存到系统目录下。
savePropsToDisk("savedata.dat",outputList,[#prefsFolder: true])
读取范例代码:
-- 从当前目录读取"savedata.dat"文件里面的保存数据。
pList = loadPropsFromDisk(the moviePath & "savedata.dat")
-- 从系统目录读取"savedata.dat"文件里面的保存数据。
pList = loadPropsFromDisk("savedata.dat",[#prefsFolder: true])
PropSave Xtra国外下载连接:
本站下载连接(除了插件外还包括dir演示文件):