首先來看,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中如何加載的呢?
這裡面,應該很簡單了。
復制代碼 代碼如下:
//定義組件
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這種格式。至於這兩種編碼的詳細區別,我目前還不太清楚,希望大家有明白的朋友,還指點一下在下。
ASP中的 i 沒有意思。可以去掉。貼出來部分的第26行,括號位置有錯。
另外樓主貼出來的AS中if(ok){}內的代碼缺少了一部分吧。for循環不完整。
復制代碼 代碼如下:
useCodePage 屬性
useCodePage:Boolean [read-write]
語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9
一個布爾值,它告訴 Flash Player 使用哪個代碼頁來解釋外部文本文件。 當該屬性設置為 false 時,Flash Player 使用 Unicode 解釋外部文本文件。 (保存這些文件時,必須使用 Unicode 對其進行編碼。) 當該屬性設置為 true 時,Flash Player 使用運行播放器的操作系統的傳統代碼頁來解釋外部文本文件。 useCodePage 的默認值是 false。
作為外部文件加載(使用 flash.display.Loader.load()、flash.net.URLLoader、flash.net.URLStream 或 XML 類)的文本必須已使用 Unicode 編碼格式保存,這樣 Flash Player 才能將它識別為 Unicode。 若要使用 Unicode 對外部文件進行編碼,請在支持 Unicode 的應用程序(例如,Windows 2000 上的“記事本”)中保存這些文件。
如果加載的外部文本文件不是 Unicode 編碼格式,則應將 useCodePage 設置為 true。 在將加載數據的 SWF 文件的第一幀中,在最前面添加以下代碼,使之成為第一行代碼:
System.useCodePage = true;有了這一行代碼,Flash Player 將使用運行 Flash Player 的操作系統的傳統代碼頁來解釋外部文本。 對於英文 Windows 操作系統,該代碼頁通常為 CP1252;對於日語操作系統,該代碼頁通常為 Shift-JIS。 如果將 useCodePage 設置為 true,則 Flash Player 6 和更高版本處理文本的方式與 Flash Player 5 相同。 (Flash Player 5 將所有文本都視為按運行播放器的操作系統的傳統代碼頁編碼的文本。)
如果將 useCodePage 設置為 true,應注意:在運行播放器的操作系統的傳統代碼頁中必須包括您的外部文本文件中使用的字符,這樣才能顯示文本。 例如,如果您加載了一個包含中文字符的外部文本文件,則這些字符不能顯示在使用 CP1252 代碼頁的系統上,因為該代碼頁不包括中文字符。
為確保所有平台上的用戶都能查看您的 SWF 文件中使用的外部文本文件,應將所有外部文本文件按 Unicode 進行編碼,並保留 useCodePage 的 false 設置不變。 這樣,Flash Player 6 和更高版本將按 Unicode 解釋文本。