我願做這樣的事情:動態加載和更改圖形
Flash項目從硬盤加載任何矢量圖形對象(即圖形只有兩種顏色),改變一個顏色(EX#FF0000)到另一個(對於ex#00ff00)並顯示。
可能嗎?
如果是,該圖形對象的文件格式是什麼?
我願做這樣的事情:動態加載和更改圖形
Flash項目從硬盤加載任何矢量圖形對象(即圖形只有兩種顏色),改變一個顏色(EX#FF0000)到另一個(對於ex#00ff00)並顯示。
可能嗎?
如果是,該圖形對象的文件格式是什麼?
如果你想加載矢量圖形,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();
至於顏色變換,你也許可以使用它的ColorTransform
或ColorMatrixFilter
類,這取決於兩種顏色的相似度做。否則,如果您堅持使用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。