1、5.2.1 建立数据库上节我们利用 ASP 给客户端浏览器返回了想要的值,本节我们来练习如何用 Flash 接收这些值。其实 Flash 接收这些值并不难,只要能够适当调整 ASP代码的输出形式,使之能够输出让 Flash 读懂的形式就万事大吉了。根据第二章的学习可知,Flash 常用的是三种方式分别为利用 LoadVariables 方法、LoadVars 类、XML 类去读取数据。由于 LoadVariables 方法过于低效,在大中型工程中几乎没有露面的机会,所以我们就直接来讲解如何用 LoadVars 类和 XML 类去读取数据库中的数据。首先我们要在虚拟目录内(e:flashasp)
2、建立一个新数据库,打开 Access 软件,按“文件”“新建”,在右侧弹出的“新建文件”面板中选择“空数据库”,如图 5.4 所示:图 5.4在弹出的“文件新建数据库”选项卡中,选择路径(e:flashasp)和填写文件名(pb.mdb)填写完之后,按下“创建”按钮,如图 5.5 所示:图 5.5软件将带你进入如图 5.6 所示的“数据库”选项卡:图 5.6双击第一项“使用设计器创建表”,软件将带你进入建表页面,你可以发挥想象任意设计一个表,也可以和我一样建立一个肯定能正常运行的示例表,我为这个表建立 3 个字段:1. id:自动增长类型,为每个字段值的唯一标识。2. person:文本类型,
3、记载人名,我将加入 10 个我喜欢的美剧角色名。3. intro:备注类型,人物的介绍。效果如图 5.7 所示:图 5.7表设置成功后,按按钮关闭当前选项卡,将此表命名为 myTable,之后软件将询问是否建立主键,为了保证扩展性,我们选择“是”。之后我们手动给数据库添加 10 条记录,你可以随意添加,我添加了 10 个美剧人名:person introT-Bag 人物名词.Prison.Break 的人气大反派,幽默的邪恶人物,第二季的神John Abruzzi人物名词.俗称阿布,又高又帅,可惜因为片约问题在 SE2 被编剧赐死Scofield 人物名词.身高仅次于阿布,女观众的最爱,有计谋
4、但在社会经验中略显稚嫩Lincoin 人物名词.在 SE1 中担惊受怕的小混混在 SE2 中彻底苏醒了,一人打三人没问题Sucre 人物名词.悲情的西班牙人,被兄弟耍,老婆被抢,重情意,决心越狱之后寻找真爱Mahone 人物名词.悲哀的 FBI,轻微的精神病倾向,但不可质疑的是他的智力和魄力Eden 人物名词.Hero 中的亮点,具有说服能力,可惜情急之下自杀了(不知真假)Claire 人物名词.Hero 中的漂亮女孩,拉拉队长,具有自我修复能力Sawyer 人物名词.Lost 中的帅主角,坏坏的,但很可爱,很喜欢 KateSayid 人物名词.Lost 中唯一的军人,沉着冷静,最重要的是够狠
5、设置完成的数据库如图 5.8 所示:图 5.8按按钮关闭软件,同时填写的数据也被保存。* 注:这个例子的源文件,在附带光盘下:源文件第五章2pb.mdb5.2.2 利用 LoadVars 类读取数据库中的数据为了让 Flash 能读懂数据,我们必须修改 ASP 的输出形式。由第二章介绍可知,Flash 利用 LoadVars 类能够读懂数据的形式为:变量 1=变量值 1/声明 lv 为一个新的 LoadVars 组件var lv:LoadVars=new LoadVars();/定义 lv 的 onLoad 函数lv.onLoad=function(success:Boolean):Void/
6、如果执行成功if(success)/在 myTextArea 中显示数据,unescape 函数能把经过URLEncode 的值还原。myTextArea.text=unescape(this);else/否则显示错误myTextArea.text=“error“;/lv 对象读取指定页面lv.load(“http:/localhost:8090/first/loadvars.asp“);保存文件,按下 Ctrl+Enter 调试程序,效果如图 5.10 所示:图 5.10* 注:这个例子的源文件,在附带光盘下:源文件第五章3loadvars.fla5.2.3 利用 ActionScript
7、格式化 LoadVars 读取的数据在图 5.2.2 所示的示例中,我们已经读到数据库中的值,但这些值没有格式化,很不利于查阅。本节我们将利用动作脚本把接收到的数据格式化来完成这个简单的示例。修改动作面板中的脚本,完成后的代码如下:/声明 myTextArea 为一个 TextArea 类实例var myTextArea:mx.controls.TextArea;/声明 lv 为一个新的 LoadVars 组件var lv:LoadVars=new LoadVars();/定义 lv 的 onLoad 函数lv.onLoad=function(success:Boolean):Void/如果执
8、行成功if(success)/执行 10 次循环,每次循环都将变量读出并追加到 myTextArea 组件中去for(var i:Number=1;i=10;i+)myTextArea.text+=“人物“+i+unescape(eval(“this.人物“+i)+“的介绍是:“+unescape(eval(“this.介绍“+i)+“n“;else/否则在 myTextArea 中显示错误myTextArea.text=“error“;/lv 对象读取文件lv.load(“http:/localhost:8090/first/loadvars.asp“);保存文件,按下 Ctrl+Enter 效果如图 5.11 所示:图 5.11* 注:这个例子的源文件,在附带光盘下:源文件第五章3loadvars_adv.fla通过这个简单的示例,我演示了如何用 Flash 的 LoadVars 对象接收数据库中的值,下节我将讲解如何利用 XML 对象接收数据库中的值。