[圖]Flash+ASP實現(xiàn)電子互動地圖在線標注功能
1、基本的通信過程
圖1 SWF+XML與服務器的通信過程示意圖
點擊看大圖
圖1展示的是本例中的通信過程示意。在 Flash 和數(shù)據(jù)庫之間傳遞信息的服務器端腳本以 XML 格式讀寫數(shù)據(jù)。
可用 ActionScript 將 SWF 文件中收集到的信息轉換成一個 XML 對象,然后將數(shù)據(jù)作為 XML 文檔發(fā)送到服務器端腳本。您還可以使用ActionScript 將服務器返回的 XML 文檔加載到 XML 對象中,以在 SWF 文件中使用該文檔。其中在本例中,保存相關的XML數(shù)據(jù)是由服務器的腳本程序來完成的,這也是本例的重點學習內容。
2、flash與ASP間的通信方法
flash與ASP通信之間可以使用多種通信方法,本例中使用了LoadVars對象。
LoadVars可以通過使用POST方法提供了一種向服務器輸送變量。
3、服務器腳本
服務器腳本可以由多種程序編寫,本例中以ASP為例編寫相關的腳本。
Microsoft Active Server Pages (ASP) 是服務器端腳本編寫環(huán)境,使用它可以創(chuàng)建和運行動態(tài)、交互的 Web服務器應用程序。
編寫腳本程序要使用相關的腳本語言;腳本語言是介于 HTML 和 Java、C++ 和 Visual Basic 之類的編程語言 之間的語言。HTML 通常用于格式化文本和鏈接網頁。編程語言通常用于向計算機發(fā)送一系列復雜指令。腳本語言也可用來向計算機發(fā)送指令,但它們的語法和規(guī)則沒有可編譯的編程語言那樣嚴格和復雜。腳本語言主要用于格式化文本和使用以編程語言編寫的已編譯好的組件。
ASP使 Web 開發(fā)商用多種腳本語言編寫完整的過程成為可能。事實上,在單個 .asp 文件內部就可以使用多種腳本語言。
我們可以使用任意一種其相應的腳本引擎已安裝在 Web 服務器上的腳本語言。通常使用VBScript和javascript這兩種語言;其中,ASP默認的腳本語言為VBScript。本例就用VBScript編寫腳本。
下面我們看看具體的實例制作。
實例制作:
1、Flash端
首先創(chuàng)建如下界面,捕捉標注點的代碼在上一講中已經提到,本例只是除了地名名稱之外,再增加一些基本的信息,方法雷同,這里就不再重復;最終將需要保存的代碼賦給字符串變量SendData_srt。
圖2 SWF文件界面1
點擊看大圖
圖3 SWF文件界面2
以一個名為Link的變量來接受來自服務器的消息。如果其值為1,表明與服務器端的通信連接成功。使用
LoadVars,再使用sendAndLoad方法將一個LoadVars的實體下的數(shù)據(jù)發(fā)送出去。
打開時間軸的動作面板,輸入以下ActionScript代碼:
function SendData():Void { //定義發(fā)送數(shù)據(jù)的函數(shù) var SendData = new LoadVars(); //構造一個新的LoadVars對象 SendData.Check = 1; //設定Check的動作,用于服務器驗證 SendData.data = SendData_srt; //將待發(fā)送的數(shù)據(jù)變量SendData_srt賦給data output_txt.text = "請稍候……"; //狀態(tài)文本顯示為"請稍候……" SendData.onLoad = function(success) { //驗證和服務器連接的函數(shù) if (success) { //如果和服務器成功連接 if (this.Link== "1") { //如果驗證動作成功 output_txt.text = "成功標注!審核后即可生效。"; //狀態(tài)文本顯示為成功 } } else { output_txt.text = "服務器忙,請稍后再試!"; //如果和服務器連接不成功則返回失敗消 } }; SendData.sendAndLoad("http://www.wanggesz.com/XMLData/Save.asp", SendData, "post"); //以post方式發(fā)送待保存數(shù)據(jù) } |
創(chuàng)建一個ASP文件,其內容如下:
<%@Language="VBScript"%> <% Dim Check '定義Check變量,用來驗證來自SWF文件的數(shù)據(jù) Dim Link '定義Link變量,用來返回給SWF文件,表明通信成功 Dim data '定義data變量,用來接收來自SWF文件的待保存數(shù)據(jù) set data = Request.Form("data") '接收來自SWF文件的待保存數(shù)據(jù) set Check = Request.Form("Check") '驗證來自SWF文件的數(shù)據(jù) if Check = 1 Then '如果SWF文件身份正確 Link = 1 '將Link值設為1,表明通信成功 End if '結束if語句 xml.Async=False xml.ValidateOnParse=False xml.Load(server.mapPath("http://www.wanggesz.com/XMLData/data.xml")) set newNode=mxml.createNode ("element", "data", "") root.appendChild(newNode) Set objname = mxml.createAttribute("data") xml.save(server.mapPath("http://www.wanggesz.com/XMLData/data.xml")) %> |
這樣我們依次完成了對地圖的操作、地名的標注等功能;而在地圖的使用過程中,用地名名稱進行查詢及定位是也一個必不可少的常用功能。
相關文章
用ASP實現(xiàn)對ORACLE數(shù)據(jù)庫的操作
用ASP實現(xiàn)對ORACLE數(shù)據(jù)庫的操作...2007-03-03用asp實現(xiàn)網頁調用doc附Response.ContentType 詳細列表
最近研究一下如何用網頁調用doc,最好能直接打開就成功了.2008-05-05ASP同一站點下gb2312和utf-8頁面?zhèn)鬟f參數(shù)亂碼的終極解決方法
要解決ASP同一站點下gb2312和utf-8頁面?zhèn)鬟f參數(shù)亂碼問題,只需嚴格做到以下4點即可。2010-12-12ASP批量生成靜態(tài)頁面的寫法(批量生成技巧iframe)
自己快忘的ASP批量生成寫法,需要自己寫asp生成靜態(tài)頁面的朋友可以參考下。2011-01-01