精華區beta Flash 關於我們 聯絡資訊
可能今天因為場地的關係,沒能讓大家看清楚今天的Demo 我用文字補充一下: 跟Server在交換資料,比較常見的是一般的文字訊息或是XML 像我自己在趕時間的時候,我會隨便echo一個字出來知會flash說server程式已經做完了 不趕時間且資料量較多的時候,則會乖乖的用XML 不過,最近開始我比較常用的是AMF跟JSON這兩個方法 其實都還滿方便的,各有其優缺點 以下先簡單的說明一下AMF這玩意 :) AMF:Action Message Format 細節可參考:http://en.wikipedia.org/wiki/Action_Message_Format 不多說細節,就來個簡單的實作吧 :) 1. 下載AMF gateway 找個自己順手的語言吧 AMFPHP:這是PHP的 http://www.amfphp.org/ (不久之後,Zend Framework也會支援AMF) PyAMF:這是Python的(我上個月開始迷上它了,努力學習中) http://pyamf.org/ AMF.NET:這是.NET的 http://amfnet.openmymind.net/ 光看名字大概就能猜到它的後端是用什麼做的 其它還有for Java或其它的,有興趣的可以繼續google翻翻看 2. 安裝AMF gateway(以AMFPHP為例) 其它只要把下載下來的程式碼整包解開,放在Web server底下一個自己找得到的路徑就行了 我是放在 http://127.0.0.1/test/amfphp/ 底下 它有提供一個很棒的Service Browser: http://127.0.0.1/test/amfphp/browser 這是個用Flex做的介面,可以清楚列出目前在AMF gateway上的服務 3. 在AMF gateway上新增一個服務 我做了一個簡單的php類別檔,存檔為callme.php 並放在AMF gateway的services資料夾裡面 在這裡,php不像java或as一樣硬性規定類別名稱一定要跟檔名一樣... 至少php5還沒有,不過建立這習慣也不錯 <?php class callme { function callmeplease($text) { return $text; } } 上面,我做了一個callme的類別,然後裡面放了一個callmeplease的方法 這個方法會接收一個參數,執行完成之後,會把傳入的參數return回來 這裡只是簡單直接return而已,更複雜的資料庫存取程式也可以寫在這裡.... 接下來看一下剛剛那個Service Browser,會發現一個新的服務在的左手邊的列表裡 3. 新增一個Fla(這裡以AS3.0為例) import flash.net.*; var test:NetConnection = new NetConnection(); // 新增一個NetConnection物件 test.connect('http://127.0.0.1/test/amfphp/gateway.php'); // 連上AMF gateway // 這裡每家AMF gateway的實作方法應該都有差別,細節請記得看該實作說明 var returnResult:Responder = new Responder(ok, ng); // 準備一個Responder物件來接收事件,用法及參數請參考F1說明 function ok(res:Object):void { trace(res); } function ng(res:Object):void { trace(res); } //以上,我做了ok跟ng兩個簡單小function,分別是trace出它們接收到的物件 test.call('callme.callmeplease', returnResult, 'hi, flash'); // 這裡是最重要的動作,就是直接用call這個方法 // "呼叫"在gateway上面的callme這個服務裡的callmeplease這個方法 // 第二個參數是接收反應的responder,第三個參數是給callmeplease的參數 以上,callme.callmeplease會把"hi, flash"傳給AMF gateway 然後gateway回傳"hi, flash"回來給flash 順利的話,Ctrl + Enter執行,就會在output視窗看到輸出的東西了 就這樣,你的Flash已經可以跟各家有支援AMF的gateway"對談"了 上面提到的原始檔在這裡可以拿得到(其實沒幾行字,就一個php跟fla) http://code.eddie.com.tw/downloads/flash/AMF.rar 還是看不懂嗎? 沒關係 這裡有個很棒的影音教學,看完跟著作一遍就知道大概是怎麼運作的了 http://www.gotoandlearn.com/player.php?id=78 希望對大家有幫助 :) -- 誠徵PHP網站工程師,熟MVC架構 http://blog.eddie.com.tw/ 全職、兼職可,意者請敲 :) http://www.eddie.com.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.139.9
dreamboxer:推...有空來試玩AMF+Flex~終於不用拼XML了~ 一_一y(耶) 08/25 00:03
didila:as3.0 拼xml還無所謂 算是不錯用 2.0就有點給他囧 -_- 08/25 20:20