|
在Flash電影中訪問Access數據庫 |
|
[ 通信界 | eliu通信網 | www.6611o.com | 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或其他的數據庫進行連接。 |
1作者:eliu通信網 來源:eliu通信網 編輯:顧北 |
|
|
|
|
|
聲明:①凡本網注明“來源:通信界”的內容,版權均屬于通信界,未經允許禁止轉載、摘編,違者必究。經授權可轉載,須保持轉載文章、圖像、音視頻的完整性,并完整標注作者信息并注明“來源:通信界”。②凡本網注明“來源:XXX(非通信界)”的內容,均轉載自其它媒體,轉載目的在于傳遞更多行業信息,僅代表作者本人觀點,與本網無關。本網對文中陳述、觀點判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。③如因內容涉及版權和其它問題,請自發布之日起30日內與本網聯系,我們將在第一時間刪除內容。 |
|
|
|
|
|
|
|
|
|
|