提供此方案:
则...
就我一直在研究的情况而言,我只能导入swf并将其用作整个显示对象,没有任何孩子,我无法修改它。
我想以某种方式使用外部swf的图形信息来允许主应用程序变形或使用它来制作新版本的图形。
答案 0 :(得分:1)
不,遗憾的是,您无法详细检索或更改已编译的Graphics元素,您只能将它们用作DisplayObjects并通过它们的公共属性(缩放,旋转,变换等等)对它们进行转换。 有一种方法可以通过将它设置为Flash IDE中对象的“指南”并在onEnterFrame中检索对象的位置来检索单个路径坐标,但正如您可以想象的那样,它非常脏。
您可以通过将剪辑设置为加载的SWF中的类(在Flash IDE中:库>符号>属性>导出AS)或使用BitmapData从主影片中随意绘制剪辑来复制剪辑。
另一个解决方案是使用更开放的格式,例如SVG或FXG,但它会变得相当复杂......
答案 1 :(得分:0)
如果两者都是AVM2 movies,则可以访问加载的SWF方法和属性。
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
private function onLoadComplete(e:Event):void
{
var content:Object = LoaderInfo(e.target).content;
//assuming there is a public someMethod() defined in
//the document class of the loaded SWF, you can call it as:
content.someMethod();
//you can access any property you wish
content.someObject.graphics.beginFill(0x00ff00);
content.someObject.graphics.drawCircle(10, 10, 10);
content.someObject.graphics.endFill();
}
答案 2 :(得分:0)
可以通过添加到Flash Player 11.6和AIR 3.6的新功能读取SWF内容:
flash.display.Grapics.readGraphicsData()
类似的问题: