程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> ASP生成動態flash的工具與介紹

ASP生成動態flash的工具與介紹

編輯:關於ASP編程
編者按:編程技術的發展真是日新月異。通過ASP等程序動態生成HTML網頁似乎已不能算是最新科技。Macromedia公司的Flash技術自推出以來,已有2億4千8百萬用戶,制作flash網站已是流行趨勢。就像HTML頁面可以用ASP動態生成 一樣,Flash 動畫也可以使用支持 COM Automation的語言(如Borland Delphi,ASP, Visual Basic 等)動態生成。該文詳細介紹了如何應用 Bukoo Flash Objects實現Flash網頁的交互應用,具有很強的實用價值。值得編程追新族們一覽。 

  一、概述 

  筆者應用 Microsoft Visual C++ 中的 ATL ,將 SWF SDK 中的高級類封裝成了 COM Objects ,以便使更多的支持COM Automation的編程語言能夠生成 Flash 動畫。這些 COM Objects 被命名為  Bukoo Flash Objects 。本文不是描述 Bukoo Flash Objects 的開發方法和過程,而是介紹如何使用它。 

  二、下載安裝 

  Bukoo Flash Objects 可以在以下網址下載:   http://www.delphibbs.com/bukoo  或者 http://www.geocities.com/yiyisun/bukoo  。下載的文件為 Swfobjs.zip ,解壓後除了文檔和范例, Bukoo Flash Objects 就在 swfobjs.dll 中,使用 regsvr32 swfobjs.dll 安裝 Bukoo Flash Objects ;使用  Regsvr32 /Uswfobjs.dll 卸除 Bukoo Flash Objects 。 

  三、基本對象及其屬性 

  Bukoo Flash Objects 總共包括三個 COM Objects : SwfMovie 、 SwfObject 和 SwfAction 。 

  通過創建這三個對象來生成 Flash 動畫的過程是:創建 SwfMovie 動畫對象;設置動畫屬性;在幀中創建、插入、刪除 SwfObject 元素對象和 SwfAction 動作對象;最後輸出 Flash 動畫。   下面是這三個對象應用方法介紹。 

  1 .SwfMovie 動畫對象 

  SwfMovie 對象代表即將生成的 Flash 動畫,首先需要設置的是動畫的大小, SwfMovie 對象的 SetSize 方法用於設置動畫的尺寸。要注意Swf中坐標單位是 twip ,即 1/1440 英寸,或者說是 1/20 像素,例如動畫尺寸為 400 x 300 像素,即為  8000 x 6000 twip 。必須這樣調用: setsize(8000, 6000) 。 

  setFrameRate (12) ,就是動畫每秒放 12 幀,每秒幀速高,動畫平滑,但是 Swf文件會變大,影響下載速度,故需要權衡利弊。用 GotoFrame 方法定位到指定幀,然後插入元素或者動作, SwfMovie 對象自動增加幀數到調用 GotoFrame 方法的最大數目。 

  插入和刪除元素的方法是 AddObject , RemoveObject ,插入動作的方法是 AddAction 。 

  WriteMovie 方法就是按照指定的文件名生成 sWF 文件。 SwfMovie 的 Content 屬性是 VARIANT 類型,也可以用 AsP 中的 response.binarywite 輸出到網頁中。 

  2 . SwfObject 元素對象 

  SwfObject 像是一個千面人,創建這個對象以後,可以用其 MakePolygon 方法使其變成多邊形;用 MakeRectangle 方法變成矩形;用 MakeOval 方法變成橢圓形;用 MakeCircle 方法變成圓形;用 MakePitcure 方法變成 Jpeg 圖像;用 MakeButton 方法變成按鈕;用 Makesound 方法變成聲音;用 MakeFont 方法變成字體;用 MakeText 方法變成文字等等。sWF 中的文字處理比較特殊,需要先將 TrueType 字體轉換成字體對象,再用字體對象生成文字。 

   SwfObject 的 Translate 方法用於平移元素,坐標定位 twip ; Rotate 方法用於旋轉元素; scale 用於縮放元素。注意旋轉和縮放方法的參數單位也比較特殊,稱為 Fixed ,簡單的換算方法是乘以 65536 ,例如旋轉 10 度,需要用 10× 65536 ,放大 2倍,需要用 2×65536 ,依次類推。   SwfObject 的 setLineWidth 方法用於設置對象邊框線的寬度,單位 twip ; setLineColorA 方法用於設置對象邊框線的顏色,它有四個參數,分別代表紅、綠、藍和 Alpha 。Alpha  參數規定顏色的透明程度。 Alpha=255 不透明,完全覆蓋下面的圖形; Alpha=0 全透明,讓下面的圖形全部透出來,自己就看不見了。 

  SwfObject 的 setNoFill 方法用於設置對象不填充, setsolidFill 用於設置對象用單色填充,也可以用 alpha  規定透明程度。 setLinearFill 方法用於設置對象從一個顏色到另外一個顏色逐漸線性過渡, setLinearFillCenter 方法用於設置顏色線性過渡的中心點。setRadialFill 方法用於設置對象從一個顏色到另外一個顏色放射性逐漸過渡。  setRadialFillCenter 方法用於設置顏色放射性過渡的中心點。   SwfObject 變成按鈕的方法的過程稍微復雜些,因為按鈕需要四個圖形,分別代表按鈕普通狀態、鼠標劃過狀態、鼠標下落狀態和提示狀態的圖形。按鈕被按動後將激發的動作,需要用 QueueEvent 方法加入動作對象。 

  3 . SwfAction 動作對象 

  目前, Bukoo Flash Objects 支持五個動作:停止動畫、播放動畫、跳轉到某個幀、導航到 URL ,以及在使某個 html frame 導航到 URL 。與 SwfObject 一樣,  SwfAction 對象創建後,可以用 MakeActionstop 、 MakeActionPlay 、  MakeActionGotoFrame 、 MakeActionGotoURL 以及 MakeActionGotoURLTarget 變成相應的動作。 

  四、 ASP 范例 

  這個 ASP 程序( sample1.asp )將動態創建 Flash 動畫,包含放射性填充背景、一個自右向左移動的文字和三個擴張的圓形,Swf文件將以二進制流的方式被寫入到浏覽器中。 sample1.asp源代碼。 

  如果需要將動態生成的 Flash 動畫插入其他網頁,可以用參照 dispswf.asp 來做。 

  兩個 ASP 配合使用的 URL 為: 

  http://localhost/swf/dispswf.asp?swf_url=sample1.asp&width=300&height=50  

  五、進一步討論 

  通過 COM 技術, Bukoo Flash Objects 在VC++的SWF SDK和VC++ 以外的其它程序設計語言或者環境之間架設了橋梁,使得利用 ASP 、Delphi 和其他語言能夠很方便地生成Flash 動畫。 

  但是,SWF SDK 中包含了許多錯誤 (bug) ,下載和使用SWF SDK 的讀者需要特別注意,例如,沒有將 TrueType 字體轉換為  Flash 字體的功能、對象的幾何變換公式是錯誤的等等。這些問題在 openswf.org 和 flashkit.com 的討論組中有很多討論。筆者在制作 Bukoo Flash Objects 時,已經盡量改了一批類似的缺陷和錯誤。估計難免還有遺漏之處,這將大大影響  Bukoo Flash Objects 的質量。隨著 Flash 5 的正式發布,預計SWF 5 的SDK不久也會推出,希望它能修正其中的  bug。屆時,筆者將用新的 SDK 重新編譯 Bukoo Flash Objects 。 

  下一個版本的 Bukoo Flash Objects 計劃將增加對中文、對嵌入動畫 (sprite) 和對變形 (morph) 的支持。 

  歡迎讀者對 Bukoo Flash Objects 提出建議和批評。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved