Flash 动态加载和更改图形

Flash 动态加载和更改图形,flash,actionscript,graphics,Flash,Actionscript,Graphics,我想这样做: flash项目从硬盘加载任何矢量图形对象(该图形只有两种颜色),将一种颜色(对于ex#ff0000)更改为另一种颜色(对于ex#00ff00)并显示 可能吗 如果是,此图形对象的文件格式是什么?如果要加载矢量图形,Flash中本机支持的最简单方式是加载SWF文件。该SWF文件可以在根显示列表中包含图形(在这种情况下,您可以简单地将加载的SWF(它将作为MovieClip)添加到显示列表中),也可以定义链接到类名的符号。在后一种情况下,可以使用getDefinitionByName(

我想这样做:

flash项目从硬盘加载任何矢量图形对象(该图形只有两种颜色),将一种颜色(对于ex#ff0000)更改为另一种颜色(对于ex#00ff00)并显示

可能吗


如果是,此图形对象的文件格式是什么?

如果要加载矢量图形,Flash中本机支持的最简单方式是加载SWF文件。该SWF文件可以在根显示列表中包含图形(在这种情况下,您可以简单地将加载的SWF(它将作为MovieClip)添加到显示列表中),也可以定义链接到类名的符号。在后一种情况下,可以使用
getDefinitionByName()
获取类定义,然后实例化该类

// After having loaded a SWF with class definition "MySymbol"
var symbolClass : Class = getDefinitionByName("MySymbol") as Class;
var symbol : Sprite = new symbolClass();
至于颜色转换,您可能可以使用
ColorTransform
colormarixfilter
类来完成,这取决于两种颜色的相似性。否则,如果您坚持使用SWF加载方法,最简单的方法是在生成SWF文件(例如在Flash Professional中)时,将图形的两个部分简单地分离为两个单独的层/显示对象,然后分别访问和转换它们

var symbol : MovieClip = new symbolClass;
symbol.part1.transform.colorTransform = 
                        new ColorTransform(0, 0, 0, 1, 255, 0, 0);
此代码将访问实例名为
part1
MySymbol
MovieClip的子项,并将其颜色更改为红色。有关ColorTransform的详细信息,请参见