999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ASP.NET的Flash(AS3.0)后臺開發研究

2011-12-31 00:00:00尹世君蔣宏艷
科海故事博覽·科教論壇 2011年8期

摘要:本文以“簡易留言板”的開發過程為例,研究了利用FluorineFx提供的Flash Remoting網關為中介,使用ASP.NET進行Flash(AS3.0)后臺開發的基本原理和過程。

關鍵詞:Flash后臺;FluorineFx;ASP.NET;數據庫

在近年來十分熱門的RIA領域,Flash是絕對的主流技術,但是由于AS3.0不具有直接訪問數據庫的功能,Flash只能用于應用程序前臺的開發,如需后臺就必須通過PHP、JSP、ASP.NET等后臺技術實現。本文以“簡易留言板”的開發過程為例,研究了通過FluorineFx連接的基于ASP.NET的Flash后臺開發技術。

1、安裝FluorineFx,創建FluorineFx網關

FluorineFx是一個開源的.NET服務器端插件,Flash通過由它提供的Flash Remoting網關實現與ASP.NET的數據交換。其官方下載地址為http://www.fluorinefx.com/download.html,可下載當前的最新版本FluorineFx v1.0.0.15進行安裝,但要注意FluorineFx作為一個插件一定要在安裝Microsoft Visual Studio之后安裝。

安裝完成后,打開Visual Studio 2008,執行【文件】|【新建】|【網站】命令,在彈出的“新建網站”對話框中選擇“FluorineFx ASP.NET WebSite”,點擊“確定”創建一個FluorineFx網站項目(本例中項目名稱為默認的WebSite1)。該項目解決方案資源管理器中的“Gateway.aspx”就是網關文件,運行Gateway.aspx,得到一個地址:http://localhost:4328/WebSite3/Gateway.aspx,這個地址就是Flash用來連接ASP.NET后臺的通信網關地址。

2、建立數據庫

本例的數據庫只需要一個表,用來存儲留言信息。打開Microsof SQL Server 2005并連接到服務器,新建一個名為“MessageBoard”的數據庫,在該數據庫中新建一個名為“Message”的表。該表需要兩列,一列存儲每條留言的編號,一列存儲每條留言的文字內容。對表的列名、數據類型和是否允許空進行編輯,第一行分別輸入“序號”、“int”、不允許空;第二行分別輸入“內容”、“text”、允許空,并設置“序號”列為主鍵。為使“序號”列能夠自動編號,在“列屬性”中將“標識規范”設置為“是”。保存表,數據庫建立完畢。

3、服務端開發

Flash與ASP.NET后臺的通信,實際上就是Flash客戶端通過FluorineFx提供的遠程服務(RemotingService)調用ASP.NET服務端的遠程對象(RemotingObject)的過程。所以,服務端的開發主要就是遠程對象的編寫。

首先,在項目WebSite1解決方案資源管理器的“App_Code”文件夾下添加一個名為“MesClass.cs”的類文件,這個類將作為遠程服務對象。如果沒有“App_Code”文件夾,則在根目錄下新建一個。

在MesClass類的命名空間列表下方添加以下三行代碼:

using System.Data.SqlClient;

using FluorineFx;//導入FluorineFx命名空間

[RemotingService]//FluorineFx通過為遠程對象添加此標記提供遠程對象服務

類體代碼如下:

public class MesClass {

public MesClass( ){ }

public void write(string mes) { //向數據庫寫入留言內容數據

//創建和打開數據庫連接

String strConn = \"Server=20101129-1445\\\\SQLEXPRESS;DataBase=MessageBoard;Integrated Security=SSPI;uid=sa;pwd=123456\"; //20101129-1445為本地計算機名稱

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

//向Message表中插入數據

SqlCommand nonquery = conn.CreateCommand();

nonquery.CommandText = \"INSERT INTO Message VALUES('\"+mes+\"')\";

nonquery.ExecuteNonQuery();

return; }

public String read( ) { //從數據庫讀取全部留言數據

//創建和打開數據庫連接

String strConn = \"Server=20101129-1445\\\\SQLEXPRESS;DataBase=MessageBoard;Integrated Security=SSPI;uid=sa;pwd=123456\";

SqlConnection conn = new SqlConnection(strConn);

conn.Open();

//執行查詢命令

SqlCommand selectCommand = new SqlCommand(\"SELECT * FROM Message\", conn);

SqlDataReader reader = selectCommand.ExecuteReader();

//逐條讀取留言信息,并按順序連接到字符串messages之后

String messages=\"\";

while (reader.Read( )) {

for (int i = 0; i < reader.FieldCount; i++) {

if (i == 0) messages += \"第\" + reader[i].ToString() + \"樓\\";

else messages += reader[i].ToString() + \"\--------------------------------------\\"; } }

reader.Close(); //關閉讀取

conn.Close(); //關閉連接

return messages; //返回字符串messages } }

4.客戶端開發

Flash客戶端使用NetConnection類連接網關并調用遠程對象,使用Responder類處理來自服務器的返回值。

新建一個Flash文件(AS3.0),在舞臺上創建一個TextArea組件實例(用于顯示所有留言),一個TextField輸入文本實例(用于輸入留言)和一個Button組件實例(用于發表留言),分別命名為message_txt、input_txt和post_btn。然后,新建一個類名為“Main”的ActionScript類文件,并將這個類設置為flash文件的文檔類。Main類的代碼如下:

package {

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.text.TextField;

//導入NetConnection和Responder類,它們位于flash.net包中

import flash.net.NetConnection;

import flash.net.Responder;

public class Main extends Sprite {

public var nc:NetConnection=new NetConnection( ); //創建NetConnection對象

public function Main( ):void {

nc.connect(\"http://localhost:4328/WebSite3/Gateway.aspx\"); //連接網關

getMessages( );

post_btn.addEventListener(MouseEvent.CLICK,btnClick);

message_txt.editable=1; }

function getMessages( ):void { //將數據庫中的留言信息顯示到message_txt中

var responder:Responder=new Responder(result,status); //創建Responder對象

//調用遠程對象MesClass的read函數。如果調用成功,則返回值作為參數傳遞給result函數并調用result函數;如果調用失敗,則返回的錯誤信息作為參數傳遞給status函數并調用status函數

nc.call(\"MesClass.read\",responder);

function result(result:String):void {

message_txt.text=result; message_txt.verticalScrollPosition=message_txt.maxVerticalScrollPosition; }

function status(status:String):void {

message_txt.text=status; } }

function btnClick(e:MouseEvent):void { //發表留言

var responder:Responder=new Responder(result,status);

//調用遠程對象MesClass的wirte函數,并將輸入內容作為參數傳遞給wirte函數

nc.call(\"MesClass.write\",responder,input_txt.text);

function result(result:String):void {

getMessages( );

input_txt.text=\"發表成功!\"; }

function status(status:String):void {

input_txt.text=\"發表失敗!\"; } } } }

運行Flash影片,即可測試這個留言板應用程序。

以上就是利用FluorineFx所提供的Flash Remoting網關為中介,使用ASP.NET進行Flash(AS3.0)后臺開發的基本原理和過程。

參考文獻:

[1]呂輝等.完全手冊Flash/Flex ActionScript 3.0交互式開發詳解:語法基礎、典型應用、視頻網站實戰[M].北京:電子工業出版社,2008:341-346.

[2]張正禮,陳文臣,何昀峰.ASP.NET 3.5簡明教程(C#2008篇)[M].北京:清華大學出版社,2010.

主站蜘蛛池模板: 免费jizz在线播放| 国产男女免费完整版视频| 亚洲人精品亚洲人成在线| 日韩无码视频播放| 国产精品亚洲一区二区三区z | 亚洲an第二区国产精品| 亚洲精品欧美日本中文字幕| 成人一区在线| 欧美日本在线播放| 热伊人99re久久精品最新地| 亚洲va在线∨a天堂va欧美va| 国产一区二区精品福利| 亚洲制服丝袜第一页| 精品色综合| 亚洲精品另类| 亚洲三级色| 亚洲国产欧美目韩成人综合| 91精品国产情侣高潮露脸| 午夜福利在线观看成人| 麻豆AV网站免费进入| 制服丝袜一区二区三区在线| 亚洲水蜜桃久久综合网站| 亚洲欧美日韩久久精品| 97国产在线观看| 国产啪在线91| 丰满的熟女一区二区三区l| 国产精品福利一区二区久久| 精品综合久久久久久97超人| 色综合狠狠操| 青青青国产精品国产精品美女| 国内精品视频区在线2021| 欧美日韩国产高清一区二区三区| 国产黄色视频综合| 久久精品一卡日本电影 | 久久香蕉国产线看精品| 国产精品999在线| 国产精品亚洲欧美日韩久久| 国产成人一区在线播放| 青青草原国产一区二区| 亚洲成a人片77777在线播放| 69精品在线观看| 二级特黄绝大片免费视频大片| 宅男噜噜噜66国产在线观看| 亚洲综合九九| 国产精品欧美在线观看| 国产精品亚洲αv天堂无码| AV天堂资源福利在线观看| 国产一级精品毛片基地| 农村乱人伦一区二区| 99免费视频观看| 曰AV在线无码| 女同久久精品国产99国| 国产青榴视频在线观看网站| 亚洲天堂成人在线观看| 欧美日韩一区二区在线播放| 蜜臀AV在线播放| 欧美一级99在线观看国产| 日本色综合网| 国产一级无码不卡视频| 91精品视频在线播放| 亚洲色图在线观看| 亚洲av片在线免费观看| 91人人妻人人做人人爽男同| 99久久国产自偷自偷免费一区| 麻豆精品在线| 亚洲高清中文字幕| 一本一本大道香蕉久在线播放| 波多野结衣一二三| 91精品久久久久久无码人妻| 国产福利大秀91| 黄色一级视频欧美| 国产一区二区精品福利| 国产成人在线无码免费视频| 精品乱码久久久久久久| 亚洲天堂在线免费| av一区二区三区高清久久| 亚洲三级成人| 在线观看精品国产入口| 亚洲精品制服丝袜二区| 真实国产乱子伦视频 | 99久久婷婷国产综合精| 曰韩免费无码AV一区二区|