|
在Flash电影中访问Access数据库 |
|
[ 通信界 | eliu通信网 | www.cntxj.net | 2004/6/1 ]
|
|
|
|
|
|
|
简介
Macromedia的Flash总是被用来制作花里胡哨的网站序幕,用户一般都会跳过这一部分。而Flash 5能够与ASP或其他的由服务器生成的网页进行连接。 这篇文章将讨论如何将Flash电影与Access数据库进行连接、使用ASP网页查询数据库并将查询得到的信息传递给Flash电影。我们将通过创建一个简单的Flash地址簿来详细说明这一技术。 在创建该地址簿时,我们需要下面的工具:Macromedia Flash 5、IIS 4.0或IIS 5.0和微软的Access数据库软件。 基础知识 Flash电影不能直接查询数据库,但它能够访问ASP网页,而ASP网页能够查询数据库。这就需要用到如下所示的Flash的ActionScript函数——loadVariables: loadVariables(URL, location); loadVariables函数能够获得指定的URL的内容,并使用这些内容设置Flash电影中的变量。这些内容必须符合MIME格式,例如,如果URL中包含有带有下列内容的网页: Var1=Test&Var2=Demo Flash电影中的变量Var1的值将被设置为“Test”,变量Var2的值将被设置为“Demo”。这些变量就可以通过Flash ActionScript来改变Flash电影。在我们的例子中,我们将使用这种方法从Access数据库中通过ASP网页向Flash电影电影中传输数据。 数据库设计 首先,我们来创建例子中使用的数据库。由于我们的地址簿非常地简单,因此数据库中只包含一个名字为Contacts的数据库表,该数据库表有5个字段:ContactID、Name、Telephone、City和Notes。 数据库表的名字是AddressBook.mdb,而且与我们下面将要创建的ASP网页和SWF文件存储在同一个目录中。(SWF文件是Flash动画电影的文件格式,目前有90%以上的互联网用户无须安装专门的插件就能够欣赏SWF格式的内容。) ASP设计 下面我们来讨论从地址簿数据库表中读取记录的ASP网页代码: 上面的ASP网页代码能够从数据库表中读取记录,然后利用Server.URLEncode返回MIME格式的数据。 我们的ASP网页代码的典型输出可能如下所示: 提示:我们从ASP网页代码中多输出了一些信息(在数据库表字段之外),TotalRecords是指数据库字表中现有的记录数,它能够使Flash知道是否已经处理完了地址簿中的记录。 我们的ASP网页代码将以GetDetail.asp的文件名与数据库表和Flash文件存储在同一个目录中。 Flash设计 有了数据库表和ASP网页代码,下面就该设计我们的地址簿应用的脸面━━Flash电影了。我们首先建立一个新的电影,并在其中插入一个空白的电影片断。 该片断将被设计为我们的地址簿,它将包含有5个文本字段(用来显示我们的信息)和二个按钮(用来浏览记录的左右箭头)。我们的地址簿如下所示: 文本字段将被创建为动态文本,每个文本字段将被赋给一个变量名字,这将使我们能够在ActionScript中控制它们的内容。 我们在影片片断中加入一个动作,使影片加载完毕后,加载输出内容为第一个记录的ASP网页代码,实现这一功能的ActionScript如下所示: onClipEvent(load) { CurrentRecord = 0; loadVariables ("getdetails.asp?Record=0", this); } 它只是简单地初始化了CurrentRecord变量(我们将使用它保存在地址簿中的位置),然后加载GetDetails.asp网页代码,该代码会加载第一个记录。 loadVariables函数的一个重要特性是它的执行方式是异步的。也就是说,Flash在执行完loadVariables命令后,它不会停下来等待结果,数据没有必要在等待程序找到loadVariables函数之后的记录时才进行加载。因此,我们需要一种机制,让Flash电影在数据加载后更新文本字段。当Flash完成变量的加载后,就会执行这一动作。实现该功能的ActionScript代码: onClipEvent(data) { strName = Name; strTelephone = Telephone; strCity = City; strNotes = Notes; strPosition = "Record " add String(CurrentRecord+1) add " of " add String(TotalRecords); } 上面的代码的作用是将从ASP网页代码中获取的变量传输到在Flash电影片断中添加的文本框中,它还会更新表明我们正在显示哪个记录的文本字段。 最后,我们还需要给左、右箭头指定动作,这样才能对整个地址簿进行操作。下面是右箭头(移到下一条记录)的代码: on (release) { CurrentRecord++; if (CurrentRecord == TotalRecords) CurrentRecord = 0; loadVariables ("getdetails.asp?Record=" add String(CurrentRecord), this); } 上面的代码对CurrentRecord执行加1操作,并检查是否已经超过了地址簿中的最后一个记录。如果已经超过了最后一个记录,则将CurrentRecord设置为0,返回地址簿中的第一个记录。代码然后从ASP网页中加载与记录相关的变量,记录加载后,Flash将再次调用onClipEvent(data),更新我们看到的文本框。 左箭头(移到前一个记录)的代码与上面的代码基本上相同,但它将对CurrentRecord执行减1操作。 至此,我们就全部完成了地址簿应用的设计工作。从浏览器中执行SWF文件后,它就会将第一个记录加载到Flash变量中(在onClipEvent(load)动作中),onClipEvent(load)就会更新向我们显示信息的文本字符框。 点击任何一个导航按钮将会触发访问ASP网页代码、加载新记录的动作,然后就会执行onClipEvent(data)动作。下面是完成后的地址簿应用: 结束语 通过结合使用Flash和ASP,我们能够创建综合了Flash的图形功能和ASP的数据访问功能的解决方案。在本篇文章中,我们通过一个例子演示了如何将Flash电影与Access进行连接的技术。对其中的ASP代码进行适当的修改,我们就能够将Flash与SQL server或其他的数据库进行连接。 |
11280作者:eliu通信网 来源:eliu通信网 编辑:顾北 |
|
|
|
|
|
声明:①凡本网注明“来源:通信界”的内容,版权均属于通信界,未经允许禁止转载、摘编,违者必究。经授权可转载,须保持转载文章、图像、音视频的完整性,并完整标注作者信息并注明“来源:通信界”。②凡本网注明“来源:XXX(非通信界)”的内容,均转载自其它媒体,转载目的在于传递更多行业信息,仅代表作者本人观点,与本网无关。本网对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。③如因内容涉及版权和其它问题,请自发布之日起30日内与本网联系,我们将在第一时间删除内容。 |
|
|
|
|
|
|
|
|
|
|