2011-08-28 48 views
0

我願做這樣的事情:動態加載和更改圖形

Flash項目從硬盤加載任何矢量圖形對象(即圖形只有兩種顏色),改變一個顏色(EX#FF0000)到另一個(對於ex#00ff00)並顯示。

可能嗎?

如果是,該圖形對象的文件格式是什麼?

回答

0

如果你想加載矢量圖形,Flash中最簡單的,本地支持的方式是加載一個SWF文件。該SWF文件可以在根顯示列表中顯示圖形(在這種情況下,您可以簡單地將加載的SWF添加到顯示列表中),也可以定義鏈接到類名稱的符號。在後一種情況下,您可以使用getDefinitionByName()獲得類定義,然後實例化該類。

// After having loaded a SWF with class definition "MySymbol" 
var symbolClass : Class = getDefinitionByName("MySymbol") as Class; 
var symbol : Sprite = new symbolClass(); 

至於顏色變換,你也許可以使用它的ColorTransformColorMatrixFilter類,這取決於兩種顏色的相似度做。否則,如果您堅持使用SWF加載方法,最簡單的方法是在生成SWF文件(例如在Flash Professional中)時將圖形的兩個部分簡單地分爲兩個單獨的圖層/顯示對象,然後訪問它們並分別進行轉換。

var symbol : MovieClip = new symbolClass; 
symbol.part1.transform.colorTransform = 
         new ColorTransform(0, 0, 0, 1, 255, 0, 0); 

此代碼將訪問MySymbol的MovieClip的孩子實例名稱part1並改變它的顏色爲紅色。有關ColorTransform的更多信息,請參閱the documentation