[Flash] AMFPHP and Flash

  • AMFPHP
  • 一直想找一個好的Flash Remoting的方案,忽然間發現這個由PHP所撰寫的AMFPHP,可以讓Flash跟PHP溝通,如此一來我們就可以透過他來連接到MySQL,下載位置如下:

    http://www.amfphp.org/

    解壓縮後放到你的網頁目錄底下(/var/www),然後開啟瀏覽器打上:

    http://localhost/amfphp/browser/

    如果有看到一個用Flex所撰寫的管理頁面就代表連接成功,如下圖:

    這裡我撰寫一個很簡單的應用範例來展示amfphp如何使用。

  • SearchCourse
  • Download: SearchCourse.zip

    程式介面:

    很單純的DataGrid, ComboBox跟search button,目的是要實做簡單的MySQL資料庫讀取功能。

    當我們選擇Course類型之後重新搜尋就會回傳對應的資料,同理,選擇Day就會過濾出符合Day的資料,了解這個程式的功用之後我們可以開始設計(~先有成品再回頭設計@@)。

    網站系統建立

    這部份你可以參考我的部落格文章:

    [Windows] ActiverPerl, Apache, PHP, MySQL

    [UTips. 52] Apache, PHP, MySQL, phpMyAdmin

    資料庫建立 (COURSE.sql)

    為了方便測試使用,我將定義好的資料庫給匯出,你只需要匯入下載包裡的COURSE.sql到你的資料庫即可。

    建立Services ( SearchCourse.php)

    這部份需要撰寫一些簡單的PHP碼,如果你不曾撰寫過PHP,你可以參考下面的網頁:

    http://www.w3schools.com/PHP/DEfaULT.asP

    construct裡面的SQL連線資訊請置換成你自己的,此php僅供測試方便使用,並未針對

    Exception跟Session做處理。

    將SearchCourse.php放到amfphp的Services資料夾裡,例如:/var/www/amfphp/services/底下,你可以回到amfphp的browser看看SearchCourse這個class是否運作正常。

    amf對PHP格式要求很多,剛開始撰寫難免會東錯西錯,久了就習慣了。

    撰寫ActionScript

    重點來了,怎麼說ActionScript還是主要的核心。

    在建構子裡會呼叫initConn()這個函式,進行gateway的連接:

    1. 建立connection物件
    2. 連線到gateway。
    3. 建立responder物件,並設定對應的EventHandler,也就是onFault, onXXResult...
    4. 呼叫Services裡的函式,舉例來說SearchCource.getAllCourses,逗點前面的SearchCourse就是我們在SearchCourse.php裡面所建立的Class,而逗點後面的getAllCourses就是SearchCourse的Member Function。

    .透過者這幾行的設定就可以連上PHP,詳細部份請參考下載原始碼,程式碼會比較長原因式因為功能的實現,並不是說使用amfphp需要寫那麼多code。

2 comments:

  1. 您好:

    這篇範例的 sql 檔案中似乎有個欄位弄錯了
    type 欄位名稱應更正為 Course

    謝謝你的 amfphp 介紹

    ReplyDelete
  2. Hello Tom,

    問題已經修正,感謝您的告知。謝謝!

    ReplyDelete

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas