在利用flex air做桌面应用程序可以得到绚丽的画面,而且可以利用工具把它制作成一个不需要安装的.exe文件。在利用flex做air的时候最大的问题是数据存储,在这里我们用
sqlite数据库,这个数据库是以数据文件形式存在的,不用任何安装,而网上有很多相应的管理工具,方便我们建立和维护这个数据库文件,在air中我们只要读取这个数据文件,利用flex相应的api就可以轻松的进行数据操作。下面是我写的一个示例代码:
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.data.SQLStatement;
import flash.data.SQLConnection;
private var file:File = new File();
private var fs:FileStream = new FileStream();
private var xml:XML;
private var con:SQLConnection;
public function init():void{
file = File.applicationDirectory.resolvePath("test.s3db");
con = new SQLConnection();
if(file.exists){
try{
con.open(file);
trace("连接成功!");
query();
}catch(e:Error){
trace(e.message);
}
private function query(){
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = con;
stmt.text = "select * from mytable";
stmt.execute();
var result:SQLResult = stmt.getResult();
if(result.data != null){
var leng:int = result.data.length;
for(var i:int = 0;i<leng;i++){
var row:Object = result.data[i];
testa.text = row.a;
testb.text = row.b;
}
]]>
</mx:Script>
<mx:Panel x="253" y="149" width="250" height="200" layout="absolute">
<mx:TextInput id="testa" x="35" y="55"/>
<mx:TextInput id="testb" x="35" y="102"/>
</mx:Panel>
</mx:WindowedApplication>
数据库文件test.s3db放在应用程序textdb.mxml同一目录下,表名为mytable,字段分别是a和b。