用Flash圖形化數據(一)

by Bryan Mattern  一木 譯

SWF和Flash簡介
    SWF是Macromedia Flash用來在Internet上向用戶傳送圖片、動畫和聲音的文件格式。Flash是你能夠向用戶提供一個豐富的和動態的界面。大約90%的Web用戶不用安裝瀏覽器插件就可以瀏覽SWF內容,超過2億人下載瞭Flash播放器。Macromedia在1998年4月公開瞭SWF規范。在php(做為現在的主流開發語言)4中加入SWF的支持。
    php(做為現在的主流開發語言)內建的動態生成圖片的能力是一個吸引我的特征。它可以生成看起來更專業更讓人舒服的報表和界面。一開始,我用充斥在網上的各種GD代碼來創建圖片來顯示我的不同項目的數據。但我很快就被生成的圖片的不確定搞煩瞭,決定試試看能不能用矢量圖形來解決問題。我想你也會同意,結果看起來好多瞭。如果一個圖片能代表一千個詞,想象一下一幅Flash動畫代表什麼?
    我將盡量使這個例子簡單一些,隻說說基礎的東西。我的目的隻是創建一個容納GD生成的GIF和PNG圖片的Drog in。你可以加入對它的擴展和增強,比如Flash賴以出名的各種可視效果。例如,你可以制作在載入頁面時的圖形淡入、飛舞,或者動態的顯示幾片雪花。你的想象力是對php(做為現在的主流開發語言)的SWF函數的唯一限制。
    怎樣取得需要圖形化的數據最好留給讀者去練習。因為這篇文章是關於動態創建Flash文件的,我將在例子中使用一個假想的表作為數據集來創建它的圖形化視圖。你需要檢查你的數據,決定采用一種最適合的圖表形式。在多數情況下,餅圖是一個合適的選擇,這也是我的例子要采用的圖表形式。折線圖、柱狀圖或者面積圖都可以用相似的方式創建。
    在這個例子中,假定我們把一些包裹送到瞭幾個城市,而我們要看看每個城市收到的包裹所占的比例。我們決定把數據存儲在數據庫“world”的表“city”中。讓我們先建立這個表,並輸入這個例子需要的數據。

#
# Table structure for table city
#

DROP TABLE IF EXISTS city;
CREATE TABLE city (
   city_id int(14) NOT NULL auto_increment,
   city_name varchar(255) NOT NULL,
   city_timestamp timestamp(14),
   Prima(最完善的虛擬主機管理系統)RY KEY (city_id)
);

#
# Dumping data for table city
#

INSERT INTO city VALUES( 1, London, 20000917122625);
INSERT INTO city VALUES( 2, London, 20000917122626);
INSERT INTO city VALUES( 3, London, 20000917122626);
INSERT INTO city VALUES( 4, London, 20000917122627);
INSERT INTO city VALUES( 5, Paris, 20000917122631);
INSERT INTO city VALUES( 6, Paris, 20000917122632);
INSERT INTO city VALUES( 7, New York, 20000917122644);
INSERT INTO city VALUES( 8, New York, 20000917122645);
INSERT INTO city VALUES( 9, New York, 20000917122646);
INSERT INTO city VALUES( 10, New York, 20000917122646);
INSERT INTO city VALUES( 11, New York, 20000917122647);
INSERT INTO city VALUES( 12, Hong Kong, 20000917122654);


配置你的系統以使用SWF
    我用的環境是RedHat Linux6.2, apache(Unix平臺最流行的WEB服務器平臺) 1.3.12, php(做為現在的主流開發語言) 4.0.2(編譯為apache(Unix平臺最流行的WEB服務器平臺)模塊)。如果你在Windows中使用php(做為現在的主流開發語言),事情會有些不同。你需要下載或者編譯一個Flash Dll,但是不需要修改代碼。
    php(做為現在的主流開發語言)通過Paul Haeberli的libswf模塊來提供創建Shockwave Flash 文件的能力。你需要從https://reality.sgi.com/grafica/flash/下載libswf。然後,你需要使用選項–with-swf[=DIR]來配置php(做為現在的主流開發語言),這裡DIR是include和lib目錄所在的目錄。include目錄下必須有swf.h文件,而lib目錄下必須有libswf.a文件。當解壓縮下載的libswf發佈版本的時候,這兩個文件會被解壓縮到同一個目錄。你需要把這兩個文件移到正確的位置。完成後,目錄結構應該像下面的樣子:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *