Actionscript 3:动态加载ai文件?

5

在Actionscript 3中,是否可以动态加载矢量文件,例如.ai文件?您可以将它们导入到舞台中,但我想以动态方式执行此操作,有没有方法可以实现这一点?

3个回答

1

您可以将矢量数据保存为XML格式,例如SVG(Illustrator支持此格式),然后使用URLLoader加载它,解析数据并将其绘制到Shape对象中。

网上有一些AS3 SVG解析器可供使用:http://www.google.com/search?q=svg+as3


“AI->SVG--load->Flash” 这个组合不是最佳的。在 Illustrator 中,将文件导出为 SVG 格式一直都是比较糟糕的。 - Alex Koz.

0

1
另外,如果我没记错的话,我们可以从Illustrator导出SWF文件。 - Alex Koz.

-1

当然,

你可以使用URLLoader类在运行时加载它:

var _loader:URLLoader;
var request:URLRequest = new URLRequest("http://yourserver.com/graphic.ai");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(request);

    private function completeHandler(e:Event):void {
        var content:DisplayObject = _e.target.content;
        addChild(content);
    }

我没有测试过,但我认为这个可以工作!


3
"_e.target.content" 应该改为 "e.target.data"。我认为你还需要对其进行类型转换,然后编译器才能让你将它放入 DisplayObject 变量中。也许你想到的是 Loader 而不是 URLLoader?当前的代码将无法工作,因为 Flash 不知道刚加载的数据是什么类型(它可能是 XML、二进制数据、PNG 等等),因此不能将 AI 文件转换为 DisplayObject,因为它不知道加载的数据是 AI 文件。我不确定 Flash 是否可以在运行时首先将 AI 文件转换。 - Cameron
嗯,你是对的。必须使用Loader而不是URLLoader。 但我不确定类型转换,稍后我会检查一下;-) - 23tux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接