MacromediaFlashRemotingforFlashMX2004ActionScript2.0網頁
官方網站:請按此。
請選擇Flashremoting_comp_as20-win-en.exe下載。
萬用ActionScript
importmx.remoting.*;
importmx.rpc.*;
//伺服器回傳資料時,會呼叫此函式
functionmyTestFunction_Result(re:ResultEvent):Void{
trace("回傳資料:"+re.result);
}
//發生處理失敗時,會呼叫此函式
functionmyTestFunction_Fault(fault:FaultEvent):Void{
trace("問題訊息:"+fault.fault.description);
}
//建立一個連線到127.0.0.1網站根目錄的myCFCDir資料夾中的myCFC.cfc
varmyService:Service=newService(
"http://127.0.0.1/Flashservices/gateway",
null,
"myCFCDir.myCFC",
null,
null);
//呼叫myService所指向的CFC中的myTestFunctino函式,並傳入"123"做為參數
varmyPendingCall:PendingCall=myService.myTestFunction("123");
//當這個呼叫有回傳訊息時,使用一個RelayResponder物件來對它做反應,這個物件在反應時會叫用我們最前面做的myTestFunction_Result或myTestFunction_Fault函式
myPendingCall.responder=newRelayResponder(this,"myTestFunction_Result","myTestFunction_Fault");
萬用CFC
製作步驟
1.首先當然先確定ColdFusionMX6.1(或BlackStone-ColdFusionMX7)、FlashMX2004及FlashRemotingAS2都安裝好了,且ColdFusion服務有在執行中。
2.在網站根目錄中做一個資料夾叫myCFCDir,裡面開一個新檔案叫myCFC.cfc(若使用ColdFusion內建的網站伺服器,網站根目錄是預設在ColdFusion資料夾下的「wwwroot」)。
3.將myCFC.cfc的內容改成上列萬用CFC的內容。
4.用http://127.0.0.1/myCFCDir/myCFC.cfc網址查看CFC的語法是否正確,ColdFusion會要求你先輸入密碼,這是為了安全起見。
5.在FlashMX2004開新檔案,在功能表選「視窗」「其他面版」「內建元件庫」「Remoting」,會多跑出一個元件庫,裡面有兩個FlashRemotingAS2的元件,將RemotingClasses拖一個到場景上,再將它刪除,如此它就會出現在這個新檔案的元件庫中。
6.將上列萬用ActionScript複製到第一個影格的動作面板中,並針對你的環境將程式碼做適當調整。
7.執行該Flash測試是否有trace出「回傳訊息:123123」,如果有就成功了。
8.要做別的FlashRemoting就直接拿上面的萬用ActionScript及萬用CFC修改就好了。
Flash的運作過程
首先由Flash來看,一開始就載入了我們需要的這些類別,然後宣告了兩個函式,分別用於處理ColdFusion的傳回值,以及在發生錯誤時做相關的處理(trace出錯誤訊息)。
接著建立Service物件,稱為myService,這是一個直接指向CFC的物件,在這個範例中它指向IP為127.0.0.1的伺服器(就是本機)根目錄下myCFCDir資料夾中的myCFC.cfc這支程式。「/Flashservices/gateway」是ColdFusion用來處理FlashRemoting呼叫的路徑,無論你的CFC放在這台主機的哪裡,都不會改變。
再來執行myService指向的CFC中的myTestFunction函式,並將回傳的PendingCall物件稱為myPendingCall,這個物件是Flash在送出對CFC的呼叫時就立刻建立的,可以將它想像成呼叫CFC的這個動作,而非CFC回傳的結果。
最後我們建立一個RelayResponder物件,並把它指給myPendingCall的responder。這是專門用來反應ColdFusion回傳值的,反應的方法就是一開頭建立的兩個函數,所以在建立這個物件的同時,將那兩個函數名稱丟給它了。
當CFC丟回資料時,myPendingCall就會叫用自己的responder,並決定執行成功還是失敗的函式來處理這些資料。
其他
MacromediaFlashRemotingforFlashMX2004ActionScript2.0還包含很多其他的功能,也有其他的做法來完成CFC呼叫。在裝好FlashRemoting之後,這些在Flash的說明面板中都有,只是英文的讀起來比較不習慣。
MacromediaFlashRemotingforFlashMX2004ActionScript2.0是我活到現在看過最長的軟體名字(嗯...來日方長,只要Macromedia還在,也許有機會看到更長的)。
請別問我為什麼舊版FlashRemoting用得好好的要改用新版,我不知道,我也是想搞清楚這一點才學會的。
MacromediaFlashRemotingforFlashMX2004ActionScript2.0包含下列Class
Connection
DataGlue
Fault
FaultEvent
Log
NetDebug
NetDebugConfig
NetServices
PendingCall
RecordSet
RelayResponder
RemotingConnector
Responder
ResultEvent
Service
MacromediaFlashRemotingforFlashMX2004ActionScript2.0包含下列Package
mx.data.components
mx.remoting
mx.remoting.debug
mx.rpc
mx.services
原文網址:
http://www.mmug.com.tw/forum/viewtopic.PHP?t=3683
http://www.aeu-studio.com/Charles/index.cfm?pid=200412170027
以及hiphen整理的简体版本.
http://www.riacn.com/bbs/showthread.ASP?postid=15307
上一篇:Swish打造“仿韩国弹性菜单”
下一篇:FlashMX2004的事件机制:从AsBroadcaster到EventDispatcher
共有 0 位网友发表了评论,得分 0 分,平均 0 分 查看完整评论