- 在线时间
- 89 小时
- 专家
- 0
- UID
- 305460
- 注册时间
- 2006-11-8
- 帖子
- 216
- 精华
- 0
- 积分
- 917
- 居住地
- 重庆市 涪陵区
- 离线
- 115 天
专长: Flash动画设计,ActionScript,美术编辑
- 帖子
- 216
- 体力
- 901
- 威望
- 16
- 居住地
- 重庆市 涪陵区
|
发表于 2008-4-11 18:49:46
|显示全部楼层
简单asp加载access数据库,并生成XML,然后再将XML数据加载进LIST组件范例学习。
演示:
http://www.taoshaw.com/taoshaw/study/accessAndList/test.swf
XML演示:
http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp
首先来看,ASP读取ACCESS数据库。
- <% @language="VBScript" @codepage="65001"%>
- <%
- '开启显式变量声明
- Option Explicit
- '设置输出类型
- Response.contentType="text/xml"
- '定义三个变量,conn(Connection对象)、connstr(ConnectionString)、sql(一个SQL语句)
- dim conn,connstr,rs,sql,i
- '定义ConnectionString的值
- i=1
- connstr="provider=Microsoft.Jet.OLEDB.4.0;data source="&Server.MapPath("test.mdb")&";"
- '建立服务器连接对象
- set conn=Server.CreateObject("ADODB.Connection")
- '建立数据集对象
- set rs=Server.CreateObject("ADODB.RecordSet")
- '打开数据连接
- conn.open connstr
- '本句的意思是到word数据表内按id字段值的升序取出前100个song1name,dong1url字段的值。值被附加到数据集对象上被当作数据集的一个属性。
- sql="select top 100 [song1name],[dong1url] from [test] order by id desc"
- '游标类型和锁定类型都设置为1,这是一个只能向前的只读行为,读取速度最快
- rs.open sql,conn,1,1
- Response.Write("<?xml version='1.0' encoding='utf-8'?><淘沙网>")
- '进行do while循环,条件循环到符合条件的最后一项
- do while not rs.eof
- '这是修改的部分,使输出的文件能够被Flash中的LoadVars对象识别。
- Response.Write("<歌曲信息><歌名>"&rs("song1name")&"</歌名><地址>"&rs("dong1url"))&"</地址></歌曲信息>"
- '记录下移
- rs.movenext
- i=i+1
- '与do while呼应的loop方法,为主循环体
- loop
- Response.Write("</淘沙网>")
- '将数据集对象关闭
- rs.close
- '将数据库连接关闭
- conn.close
- '释放数据集资源
- set rs=nothing
- '释放数据库连接资源
- set conn=nothing
- %>
复制代码
这部分代码,就是读取数据库。
下面看看是如何生成XML的呢,其实,就是在输出的时候。加上XML的相应格式。比如<歌曲信息>,以及各个标签等。一定要注意,每个标签,一定要封闭。
这个xml.asp文件的全部代码如下:- 下面,再看看,FLASH中如何加载的呢?
- 这里面,应该很简单了。
- [code]//定义组件
- var my_TextArea:mx.controls.TextArea;
- var my_List:mx.controls.List;
- var my_XML:XML = new XML();
- my_XML.load("http://www.taoshaw.com/taoshaw/study/accessAndList/xml.asp");
- my_XML.onLoad = function(ok:Boolean) {
- if (ok) {
- for (i=0; i[td] my_List.addItem({label:this.firstChild.childNodes.childNodes[0].childNodes[0].nodeValue, data:this.firstChild.childNodes.childNodes[1].childNodes[0].nodeValue});
- }
- }
- };
- var my_Object:Object = new Object();
- my_Object.change = function(eventObj:Object):Void {
- my_TextArea.text += eventObj.target.selectedItem.label+"\n";
- };
- my_List.addEventListener("change", my_Object);
复制代码
就这样,生成的XML文件就被导入进LIST里面了。通过监测函数,即可以调用数据。
学好这个,对于制作一些含后台的项目,比如相册、动态文章管理、播放器等就不难了。
制作一些需要加载外部文件的FLASH的时候,特别需要注意的是编码的问题。
首先,要注意,在同一个FLASH中,不要出现两次:“System.useCodepage=true”;
原本这句话的含义是将加载的外部非"Utf-8"格式的文件的编码转换成uft-8格式的,而如果使用两次,则一定会出错的。
一般的合作方法就是,外部文件保存的时候,要选择uft-8这种编码格式,或者Gb2312这种格式。至于这两种编码的详细区别,我目前还不太清楚,希望大家有明白的朋友,还指点一下在下。
[ 本帖最后由 taoshaw 于 2008-4-11 18:51 编辑 ] |
-
总评分: 威望 + 1
查看全部评分
|