2011年4月24日 星期日

ASP.NET Flash Excalibur 1.0 – Part 2

這一篇要說明ASP.NET Flash Excalibur怎麼將資料回傳,讓Flash能與Web上的程式互動。

首先建立一個後端的Listen,接收一個輸入文字的內容然後儲存在網站上,保留下次再開啟時可以顯示出來。步驟:

1.一樣建立UserControl,並撰寫程式碼如下。
解說一下,主要在第24行的程式:

this.Listen["Save"].Listen += new OnListen(Save_Listen);

這裡是我們要註冊給Flash前端呼叫的方法,名子是”Save”,當被Flash呼叫時就是要控制項執行指定的Save_Listen方法,只要用這樣的方式就可以在各個控制項中註冊多個能被前端呼叫的Listen,而e.Value在Flash中是用Binder組件對輸入文字做繫結,所以其資料就是回傳前端所填寫或改變的內容。

另外關於e.Value註冊的變數有給它一個限制,其必須在控制項的OnCreate中有給值的變數名稱才可在Listen中被使用,否則執行時將會引發錯誤。

2.建立Flash(AS3)檔,放置一個動態文字並設為可編輯的,實體名稱設為cache。

3.加入FlashRemoting與Binder組件,並給予FlashRemoting實體名稱為Remoting,接著設定組件參數FlashRemoting的controlPath值設為~/CacheText.ascx,Binder的bindName值設為CacheText,bindProperty值設為cache.text。

4.加入一個按鈕元件實體名稱為SaveButton,然後於影格撰寫按鈕動作程式碼如下。

5.最後測試影片就完成囉,可以修改文字內容儲存於網站上,關閉重複測試影片就會看到前次有儲存的內容。

到這裡很明顯的前端只要簡單的呼叫FlashRemoting的SendEvent函式,傳入要執行的Listen名稱就能與Web達成互動,同樣如果當後端在Listen中改變e.Value的值以後,結果也會被Binder同步在前端繫結的目標上。

概念就有點類似動態網頁的Submit一樣,不會很難對吧。

接下來,下一篇會有個較進階的範例來示範如何應用Flash的元件與UserControl的父子階層。

沒有留言:

張貼留言