|
清單 2 顯示了使用 Ming 庫實現的 HelloWorld 示例。
清單 2. Hello.php
|
在命令行中運行這段代碼將生成文件 hello.swf。當我在 Web 瀏覽器中打開該文件時,看到了圖 1 所示的結果。
圖 1. 使用 Ming 的 HelloWorld 示例

回過頭來查看這段代碼,我做的第一件事是創建指向一個內置字體(_sans)的指針,然后創建文本字段,設定字體、顏色和大小,最后為其提供 一些文本內容(“Hello World”)。再接下來創建了一個 SWFMovie
對象并設定其尺寸。最后,向動畫中添加了文本元素并將動畫保存到文件中。
作為直接構建文件的替代性方法,也可以使用下面的代碼,使 SWF 動畫像頁面那樣輸出,而無需使用 save 方法:
header( 'Content-type: application/x-shockwave-flash' ); |
此過程類似于使用 php 中的 ImageMagick 庫來構建位圖。對于所有 Ming 示例,我都將使用 save 方法,但您可以根據喜好來選擇是否使用 save 方法。
讓文本動起來
只是將一些文本放入 Flash 動畫中是沒有多大意義的,除非您能讓它動起來。因此我整合了清單 2 中的示例,它包括兩段文本:一部分開始很小后來變得越來越大,而另一部分保持靜態。
清單 3. Text.php
|
在命令行中執行這段代碼時,它將生成 text.swf。在 Web 瀏覽器中打開該文件時,我看到了圖 2 所示的圖片。
圖 2. text.swf 文件

文本 “1000” 開始時很小,大小為 350 個點。然后使用 scaleTo()
方法使其增大為 750 個點,方法是對動畫對象使用 nextframe()
方法。
要理解其工作原理,需要了解一點 Flash 制作動畫的方法。Flash 中的動畫就像電影中的動畫一樣運行:按幀運行。子圖形將按幀在動畫框架中移動。一個主要差別是 Flash 不獲取每幀的快照。它存儲子圖形對象在每幀的狀態。
您可能會注意到,我有一個名為 $pt
的變量,該變量具有文本 “1000”。隨后當我把 $pt
添加到動畫中時,獲得了通過 add()
方法返回的名為 $pts
的新對象。該對象是 SWFDisplayItem
, 表示子圖形的實例。然后我可以圍繞動畫框架的表面逐幀移動實例。 這有點兒混亂,但我可以擁有同時移動的多個版本的 “1000” 文本子圖形或 “points” 文本子圖形。
繪制一些圖形
接下來要處理的是矢量圖形。首先僅繪制一條簡單的直線,它從框架的左側頂部到右側底部。
清單 4. Line.php
|
在命令行中運行此腳本,然后查看輸出的 .swf 文件,效果如圖 3 所示。
圖 3. 繪制簡單的直線

好的 ―― 這十分簡單,也不怎么令人激動。那么我做了什么?創建了一個新的 SWFShape
對象,然后向其中添加了一些筆觸移動和直線。然后我將其作為子圖形添加到了動畫中。
為了讓它變得更有趣,我使用了與剛才文本中使用的相同的幀式動畫。但在本例中,我用下面所示的代碼使這條直線圍繞動畫的中心旋轉。
清單 5. 旋轉直線
|
在本例中,我從 -100, -100 到 100, 100 畫了一條直線。這將把直線的中心放在坐標 0,0 處。這樣,當我在旋轉圖形時,直線的中心將發生旋轉。
當我向動畫中添加圖形時,將移動返回到框架中心的 SWFDisplayItem
。然后用 rotate()
方法使它旋轉并每旋轉一周就增大其框架。
使用圖片
文本和諸如直線、圓、弧、曲線和矩形之類的簡單矢量圖形都是十分優秀的,但在理想的情況下,您必須能訪問這些 Flash 動畫中的圖片。值得慶幸的是,Ming 庫使您可以輕松的使用圖片,如下所示。
清單 6. 使用圖片
|
在命令行中運行此腳本并在瀏覽器中查看 image.swf,結果如圖 4 所示。
圖 4. 生成的圖片動畫

此腳本在開始時讀取了本地的 .jpeg 文件(在本例中,是我女兒 Megan 的照片)。然后創建一個矩形,并在其中填充圖片。在那之后,它在10 幀處使用了位移效果使圖片稍微移動。
繼續移動
我只是觸及了 Ming 庫可為您提供的操作的表面。在這里我沒有展示交互部分,在交互部分您可以將簡單的腳本與元素連接起來。(但是,如果換成是交互操作,如果您有一個十分復雜 的 Flash 動畫,則可能需要考慮使用 Flash 開發工具來構建 Web 應用程序內與 Web 服務對話的 Flash 動畫。)
構建更加復雜的 Flash 動畫的另外一種選擇是使用諸如 Adobe Flex 或 Laszlo 之類的制作工具,這兩種工具都提供了用于為 Flash 動畫的用戶界面布局的 XML 語法以及一個更輕松地例程,可用于開發為界面提供互動操作的 JavaScript。
php技術:PHP生成Flash動畫的實現代碼,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。