程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> [圖]Flash+ASP實現電子互動地圖在線標注功能

[圖]Flash+ASP實現電子互動地圖在線標注功能

編輯:關於ASP編程
於電子互動地圖的信息量太大,完全可以通過客戶端的廣大操作者一同完成海量的標注工作,這樣就必須實現在線標注的功能。而這樣的功能單獨依靠Flash本身是無法實現的。我們可以通過ASP、ASP.net、PHP等協助實現。在本例中,我們使用ASP來共同實現在線標注功能。

  1、基本的通信過程


圖1 SWF+XML與服務器的通信過程示意圖
點擊看大圖

   圖1展示的是本例中的通信過程示意。在 Flash 和數據庫之間傳遞信息的服務器端腳本以 XML 格式讀寫數據。
  可用 ActionScript 將 SWF 文件中收集到的信息轉換成一個 XML 對象,然後將數據作為 XML 文檔發送到服務器端腳本。您還可以使用ActionScript 將服務器返回的 XML 文檔加載到 XML 對象中,以在 SWF 文件中使用該文檔。其中在本例中,保存相關的XML數據是由服務器的腳本程序來完成的,這也是本例的重點學習內容。

  2、flash與ASP間的通信方法

  flash與ASP通信之間可以使用多種通信方法,本例中使用了LoadVars對象。
  LoadVars可以通過使用POST方法提供了一種向服務器輸送變量。

  3、服務器腳本

   服務器腳本可以由多種程序編寫,本例中以ASP為例編寫相關的腳本。
  Microsoft Active Server Pages (ASP) 是服務器端腳本編寫環境,使用它可以創建和運行動態、交互的 Web服務器應用程序。
  編寫腳本程序要使用相關的腳本語言;腳本語言是介於 HTML 和 Java、C++ 和 Visual Basic 之類的編程語言 之間的語言。HTML 通常用於格式化文本和鏈接網頁。編程語言通常用於向計算機發送一系列復雜指令。腳本語言也可用來向計算機發送指令,但它們的語法和規則沒有可編譯的編程語言那樣嚴格和復雜。腳本語言主要用於格式化文本和使用以編程語言編寫的已編譯好的組件。

   ASP使 Web 開發商用多種腳本語言編寫完整的過程成為可能。事實上,在單個 .asp 文件內部就可以使用多種腳本語言。

   我們可以使用任意一種其相應的腳本引擎已安裝在 Web 服務器上的腳本語言。通常使用VBScript和javascript這兩種語言;其中,ASP默認的腳本語言為VBScript。本例就用VBScript編寫腳本。

  下面我們看看具體的實例制作。
  實例制作:

  1、Flash端


  首先創建如下界面,捕捉標注點的代碼在上一講中已經提到,本例只是除了地名名稱之外,再增加一些基本的信息,方法雷同,這裡就不再重復;最終將需要保存的代碼賦給字符串變量SendData_srt。


圖2 SWF文件界面1
點擊看大圖

圖3 SWF文件界面2

   以一個名為Link的變量來接受來自服務器的消息。如果其值為1,表明與服務器端的通信連接成功。使用
LoadVars,再使用sendAndLoad方法將一個LoadVars的實體下的數據發送出去。

   打開時間軸的動作面板,輸入以下ActionScript代碼:

function SendData():Void { //定義發送數據的函數

var SendData = new LoadVars(); //構造一個新的LoadVars對象

SendData.Check = 1; //設定Check的動作,用於服務器驗證

SendData.data = SendData_srt; //將待發送的數據變量SendData_srt賦給data

output_txt.text = "請稍候……"; //狀態文本顯示為"請稍候……"

SendData.onLoad = function(success) { //驗證和服務器連接的函數

if (success) { //如果和服務器成功連接

if (this.Link== "1") { //如果驗證動作成功

output_txt.text = "成功標注!審核後即可生效。"; //狀態文本顯示為成功

}

}

else {

output_txt.text = "服務器忙,請稍後再試!";

//如果和服務器連接不成功則返回失敗消

}

};

SendData.sendAndLoad("http://www.wanggesz.com/XMLData/Save.asp", SendData, "post");

//以post方式發送待保存數據

}

  2、編寫服務器腳本(ASP)

   創建一個ASP文件,其內容如下:

<%@Language="VBScript"%>

<%

Dim Check '定義Check變量,用來驗證來自SWF文件的數據

Dim Link '定義Link變量,用來返回給SWF文件,表明通信成功

Dim data '定義data變量,用來接收來自SWF文件的待保存數據

set data = Request.Form("data") '接收來自SWF文件的待保存數據

set Check = Request.Form("Check") '驗證來自SWF文件的數據

if Check = 1 Then '如果SWF文件身份正確

Link = 1 '將Link值設為1,表明通信成功

End if '結束if語句

Set xml=Server.CreateObject("Microsoft.XMLDOM")
'創建一個對象用以操作XML文件

xml.Async=False

xml.ValidateOnParse=False

xml.Load(server.mapPath("http://www.wanggesz.com/XMLData/data.xml"))
'加載xml文件

set newNode=mxml.createNode ("element", "data", "")
'創建新節點newNode,並命為為data

root.appendChild(newNode)
'在上面得到的加載進來的XML文件的根節點後追加一個新建的節點newNode,

Set objname = mxml.createAttribute("data")
'為新建的節點創建屬性項objname.Text = data '為新建屬性項添加屬性值

xml.save(server.mapPath("http://www.wanggesz.com/XMLData/data.xml"))
'在指定的路徑保存XML文件,

Response.write"Link"&Link '將Link=1返回給SWF文件

%>


   這樣我們依次完成了對地圖的操作、地名的標注等功能;而在地圖的使用過程中,用地名名稱進行查詢及定位是也一個必不可少的常用功能。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved