2011-08-28 64 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