Actionscript 3 访问ActionScript库项目中的资产/资源文件

Actionscript 3 访问ActionScript库项目中的资产/资源文件,actionscript-3,air,flash-builder,Actionscript 3,Air,Flash Builder,我正在使用ActionScript库项目在手机和桌面ActionScript项目之间共享代码和资产/资源 库项目已通过“库路径”选项卡上的“添加项目”选项添加到其他两个项目中,链接类型为“合并到代码中”,其中的所有类都可以被其他项目访问并正常工作 但是,它包含一个SQLite数据库文件,我想在第一次加载应用程序时将其复制到目标系统上的文件.applicationStorageDirectory,我不确定如何在库项目中获取该文件的引用以将其复制出来 db文件的位置是:LibraryProj-src

我正在使用ActionScript库项目在手机和桌面ActionScript项目之间共享代码和资产/资源

库项目已通过“库路径”选项卡上的“添加项目”选项添加到其他两个项目中,链接类型为“合并到代码中”,其中的所有类都可以被其他项目访问并正常工作

但是,它包含一个SQLite数据库文件,我想在第一次加载应用程序时将其复制到目标系统上的
文件.applicationStorageDirectory
,我不确定如何在库项目中获取该文件的引用以将其复制出来

db文件的位置是:LibraryProj-
src/database/dbFile.db
,我认为使用file.applicationDirectory,然后使用“进入”swf的路径可以访问该文件,但以下测试均未表明该文件存在

var test:File;

test = File.applicationDirectory.resolvePath("app:/src/database/dbFileDb.db"); 
trace("test.exists==" + test.exists); 

test = File.applicationDirectory.resolvePath("src/database/dbFileDb.db"); 
trace("test.exists==" + test.exists);
test = File.applicationDirectory.resolvePath("database/dbFileDb.db"); 
trace("test.exists==" + test.exists); 
test = File.applicationDirectory.resolvePath("dbFileDb.db"); 
trace("test.exists==" + test.exists);
这是将资源/资产文件从包含合并库的swf复制到应用程序存储目录的正确方法吗?甚至可以通过这种方式共享库项目中的资源/资产吗


任何建议都将不胜感激。

在做了更多关于在AS3中使用
[Embed]
标记的研究之后,我现在发现,这是我应该用来使文件可用于消费项目的东西(我以前只将其用于图像,没有想到它也用于其他文件类型)

要将文件复制到
file.applicationStorageDirectory
中,我使用以下代码。它将嵌入的文件转换为字节数组,然后通过
FileStream
类将其写入目标文件

//write the embedded database file data into app user files directory
var bundleDbBytes:ByteArray;
bundleDbBytes = new myReferenceDbFile();//gets a reference to the embedded db file

var outputDbFile:File = File.applicationStorageDirectory.resolvePath(DB_FILE_NAME);
var fileStream:FileStream = new FileStream();
fileStream.open(outputDbFile, FileMode.UPDATE);
fileStream.writeBytes(bundleDbBytes);
fileStream.close();

嘿,普雷斯托,数据库已经准备好使用了。

您是否使用
[embed]
标记嵌入了文件?哈!5分钟前,我刚刚完成了使用
[Embed]
的代码重写。我也要写下我现在应该做的事情。谢谢你的意见,乔希。
//write the embedded database file data into app user files directory
var bundleDbBytes:ByteArray;
bundleDbBytes = new myReferenceDbFile();//gets a reference to the embedded db file

var outputDbFile:File = File.applicationStorageDirectory.resolvePath(DB_FILE_NAME);
var fileStream:FileStream = new FileStream();
fileStream.open(outputDbFile, FileMode.UPDATE);
fileStream.writeBytes(bundleDbBytes);
fileStream.close();