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.

主站蜘蛛池模板: 一本大道无码日韩精品影视| 国产丝袜无码精品| 亚洲色大成网站www国产| 韩日午夜在线资源一区二区| 97视频精品全国在线观看| 99久久精品久久久久久婷婷| 日韩视频福利| 精品少妇人妻av无码久久| 国产SUV精品一区二区6| 亚洲色无码专线精品观看| 99re在线视频观看| 久久福利网| 久久精品免费国产大片| 二级特黄绝大片免费视频大片| 亚洲天堂久久| 亚洲国产成人综合精品2020| 激情无码字幕综合| 四虎永久在线视频| 综合亚洲色图| 亚洲国产天堂久久综合| 日韩av手机在线| 99久久精品免费观看国产| 日韩毛片在线播放| 99re热精品视频中文字幕不卡| 亚洲天堂啪啪| 国产女人水多毛片18| 高清免费毛片| AV老司机AV天堂| 国产美女免费网站| 免费网站成人亚洲| 欧美第一页在线| 国产精品视频系列专区| 伊在人亚洲香蕉精品播放| 9cao视频精品| 一级毛片免费播放视频| 成人午夜视频免费看欧美| 国产一区二区网站| 91视频免费观看网站| 国产精品女在线观看| 久久国产精品电影| 久久99热这里只有精品免费看| 国产网站在线看| 亚洲第一中文字幕| 亚洲日本中文综合在线| 色香蕉影院| 久操中文在线| 久久综合色88| 欧美一级高清免费a| 在线观看免费人成视频色快速| 无码AV高清毛片中国一级毛片| 国产精品9| 婷婷午夜影院| 亚洲国产中文精品va在线播放| 人人澡人人爽欧美一区| 亚洲中文字幕手机在线第一页| 波多野结衣无码视频在线观看| 中文字幕精品一区二区三区视频| 国产一区二区三区在线观看视频| 97精品久久久大香线焦| 91精品最新国内在线播放| 国产高清在线精品一区二区三区 | 免费无遮挡AV| 五月婷婷亚洲综合| 免费黄色国产视频| 专干老肥熟女视频网站| 四虎精品黑人视频| 亚洲精品国产成人7777| 婷婷色狠狠干| 国产精品一区在线麻豆| 国内精品视频在线| 国产大片黄在线观看| 欧美啪啪一区| 国产va欧美va在线观看| 一区二区理伦视频| 在线欧美一区| 色综合久久久久8天国| 欧美一级大片在线观看| 网久久综合| 国产丝袜91| 日韩 欧美 小说 综合网 另类| 青草视频在线观看国产| 精品国产免费第一区二区三区日韩|