我愿做这样的事情:动态加载和更改图形
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。