與Flash的第一次接觸
最近使用Flash撰寫一些程式,實在不是很會用,寫得很差,到處參考別人的文件,東拼西湊的,最後終於完成了一個小小的作品。這篇文章的目的用途是當做使用紀錄,供日後參考用的技術文件,畢竟人事健忘的動物。這次使用Flash的目的,是使用Flash提供的Web Service的能力,利用這個能力與SOAP Server連接並做資料的存取。而這篇文章將以一個極簡單的範例來說明如何透過Flash取得想要的資料。關於SOAP Server的製作請參考之前撰寫的"Pyhon的SOAP Library"這篇文章,這篇文章有教大家如何使用python這個程式語言實作一個RPC Server,提供其他程式作遠端呼叫。當然我也會在這篇文章中簡述RPC Server的製作,而我會使用不同的方式來架構RPC Server,與之前介紹使用Python 的 SOAP Library的用法有些不同,我將使用python內建的函式庫來實作該Server。
前言:
我們所使用的開發環境
我們所使用的開發環境
1. Flash 8.0 (30天試用版)
2. Pyhton 2.3
參考資料
1. http://www.adobe.com/devnet/flash/articles/webcam_motion_print.html (因為我撰寫的Flash程式會使用到WebCam,所以參考該網站中所提供的做法,但我所舉的簡單範例並沒有使用到WebCam,只是單純的Web Service的使用)
2. http://blog.xuite.net/ben19770209/ASBeginner/5255724 (圖檔的資料處理)
3. http://ria.richtechmedia.com/?p=204 (關於Flash與Web Service間的技術參考文件)
2. Pyhton 2.3
參考資料
1. http://www.adobe.com/devnet/flash/articles/webcam_motion_print.html (因為我撰寫的Flash程式會使用到WebCam,所以參考該網站中所提供的做法,但我所舉的簡單範例並沒有使用到WebCam,只是單純的Web Service的使用)
2. http://blog.xuite.net/ben19770209/ASBeginner/5255724 (圖檔的資料處理)
3. http://ria.richtechmedia.com/?p=204 (關於Flash與Web Service間的技術參考文件)
一、Flash的下載與安裝
當然Flash下載完你將會有30天的試用時間,當然30天的時間足夠讓我把東西給做完,如果你覺得Flash 8.0好用或許可以考慮購買,我沒有買,因為我所作的東西只是實驗性質。當你進入準備下載時,它會要求你輸入帳號與密碼,如下圖,如果沒有就申請一個吧。
當你入完帳號與密碼之後,你就可以下載到你所想要的東西
安裝Flash,當你執行了下載回來的檔案(Flash8-cht.exe)之後會出現下圖的畫面
請按確定,接著會進入下面的畫面,進行安裝的準備
接著你會看到下面的畫面
然後按下一步,你會看到下面的畫面
點選"我接受該授權合約中的條款",然後按下一步,你會看到下面的畫面
然後按下一步,看到下面畫面
按下一步,按安裝......,一直到最後按下完成,Flash終於裝好了。
二、Flash的程式設計
關於Flash的程式設計,有一部分是自己摸索的結果,一部分是參考Flash中所提供的教學文件,因為在幾天內就要上手,所以只是很大概的學一學而已,詳細的流程與設計步驟請參閱Flash中的說明文件。
首先開啟了Flash 8之後,第一步就是先建立一個專案,起在主畫面中點選Flash專案,如下圖中紅色圈圈中所示。
然後為專案取個名字並且選擇存檔路徑,如下圖所示
按下存檔後,你就建立好你的第一個專案,如下圖所示
接著建立一個Flash 文件,從檔案/開啟新檔,在"一般"的畫面中選擇Flash 文件,然後按確定。接著請將該檔案另存新檔,點選檔案/另存新檔,命名為main.fla,接著在專案視窗中按滑鼠右鍵,並將main.fla加入專案中。如下圖所示。
增加完成之後如下圖所示,在專案中會顯示main.fla這個檔案,請將這個檔案設成預設文件,方法在該檔案上按滑鼠右鍵,並選擇"設成預設文件"的選項。
接下來開始設計你的Flash程式。Flash程式設計分成兩部分,一部分是場景的設計,你可以在場景中擺設一些元件,來豐富你的畫面。另一個部分就是動作流程的設計。在場景的配置部分請你先試著拉出一個動態的文字方塊,請從左的工具列中選擇"A"那個圖案的工具,並請在場景中佈置動態文字方塊的大小與位置,如下圖所示。
你可以自行調整適合的字體大小、位置和顏色。假設你已經設定完成,接下來就要撰寫動作部分的程式。我把所有的程式撰寫在圖層1:1的地方,程式碼如下:
//每隔10秒鐘執行一次showMessage這個function
setInterval(showMessage,10000,"");
var countNum = 0;
setInterval(showMessage,10000,"");
var countNum = 0;
/*
* showMessage主要工作連結上Web Service,取回Web Service中的資料,
* 我們會把取回來的資料顯示在outputData那個動態文字中
*/
function showMessage()
{
countNum = countNum + 1;
listener = new Object();
listener.Onecho = function(event) {if(event.target.IsFault()) {
outputData = "遠端伺服器發生問題,無法回應";} else {
outputData = event.target.Data;
}}
//連接server,192.168.0.10請改成你所指向Web service 的IP Address
server = new XMLRPC.ProxyServer("http://192.168.0.10:5630");
var data = [countNum];
//傳送資料給server
server.Call("echo", data, listener);
}
這段程式的目的是每隔10秒向Web Service要回資料,並且將資料顯示於我們剛才所擺設的動態文字中。詳細的程式碼請參閱這裡。
三、Pyhton的程式設計
關於Python的RPC Service,我們這次採用Python內建的SimpleXMLRPCServer模組來達成,所以不必安裝其他額外的模組,下面維程式範例:
#############################################################################
# 此程式的目的是撰寫Web Service的RPC
#
# 程式製作者:陳佳揚
# 使用程式: python
# 版本:3.0
# 完成日期:
#
#############################################################################
# 此程式的目的是撰寫Web Service的RPC
#
# 程式製作者:陳佳揚
# 使用程式: python
# 版本:3.0
# 完成日期:
#
#############################################################################
import SimpleXMLRPCServer
def echo(index):
index = int(index)
ANS = "Test"
if index % 4 == 0:
ANS = "你好嗎?"
if index % 4 == 1:
ANS = "加油"
if index % 4 == 2:
ANS = "今天是愚人節嗎?"
if index % 4 == 3:
ANS = "今年又快結束了,你成功了嗎?"
return ANS
index = int(index)
ANS = "Test"
if index % 4 == 0:
ANS = "你好嗎?"
if index % 4 == 1:
ANS = "加油"
if index % 4 == 2:
ANS = "今天是愚人節嗎?"
if index % 4 == 3:
ANS = "今年又快結束了,你成功了嗎?"
return ANS
server = SimpleXMLRPCServer.SimpleXMLRPCServer(("192.168.0.10", 5630))
server.register_function(echo)
try:
server.serve_forever()
except e:
debug = e
這段程式是根據不同的代碼給予回應,詳細的程式碼請參閱這裡。
執行結果
全站熱搜
留言列表