用Flash圖形化資料(一)

來源:互聯網
上載者:User
關鍵字 用Flash圖形化資料(一)
by Bryan Mattern 一木 譯

SWF和Flash簡介
  SWF是Macromedia Flash用來在Internet上向使用者傳送圖片、動畫和聲音的檔案格式。Flash是你能夠向使用者提供一個豐富的和動態介面。大約90%的Web使用者不用安裝瀏覽器外掛程式就可以瀏覽SWF內容,超過2億人下載了Flash播放器。Macromedia在1998年4月公開了SWF規範。在php4中加入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),
  PRIMARY 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 1.3.12, PHP 4.0.2(編譯為Apache模組)。如果你在Windows中使用PHP,事情會有些不同。你需要下載或者編譯一個Flash Dll,但是不需要修改代碼。
  PHP通過Paul Haeberli的libswf模組來提供建立Shockwave Flash 檔案的能力。你需要從http://reality.sgi.com/grafica/flash/下載libswf。然後,你需要使用選項--with-swf[=DIR]來配置PHP,這裡DIR是include和lib目錄所在的目錄。include目錄下必須有swf.h檔案,而lib目錄下必須有libswf.a檔案。當解壓縮下載的libswf發布版本的時候,這兩個檔案會被解壓縮到同一個目錄。你需要把這兩個檔案移到正確的位置。完成後,目錄結構應該像下面的樣子:
  
  /usr/local/swf/
    /include/
      swf.h
    /lib/
      libswf.a
    /fonts
  ...

  為了使SWF函數能正常工作,你需要複製/usr/local/swf/fonts/目錄,以便web伺服器能訪問該目錄(對apache和mod_php來說,最好的辦法就是使用絕對路徑,並把以上目錄複寫到apache的主目錄下。)另外,在libswf的發布版本中有一個很小的c程式,能夠把類型1的字型轉換成Flash能用的字型。
  因為我們要動態地建立和寫SWF檔案,所以web伺服器需要在隱藏檔的目錄有寫入權限。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.