Flex或Actionscript从外部Illustrator SWF访问内容

Flex或Actionscript从外部Illustrator SWF访问内容,actionscript,flash,adobe-illustrator,Actionscript,Flash,Adobe Illustrator,我无法从Illustrator SWF访问内容(我使用Illustrator创建SWF,我导出我将图层另存为符号)。 当我使用flash创建swf文件时,我可以使用此代码访问形状和符号 我正在尝试获取并更改swf文件中符号的颜色 var flashMovie:Sprite = this.content as Sprite; for (var i:int = 0; i < flashMovie.numChildren; i++) { f

我无法从Illustrator SWF访问内容(我使用Illustrator创建SWF,我导出我将图层另存为符号)。 当我使用flash创建swf文件时,我可以使用此代码访问形状和符号

我正在尝试获取并更改swf文件中符号的颜色

var flashMovie:Sprite = this.content as Sprite;
for (var i:int = 0; i < flashMovie.numChildren; i++) 
{                           
flashMovie.getChildAt(i).name;
flashMovie.getChildAt(i).transform.colorTransform.color;                    

}
var flashMovie:Sprite=this.content作为Sprite;
for(变量i:int=0;i
但当我使用Illustrator创建swf文件时,它不会返回任何内容


如何访问Illustrator SWF的内容并更改其颜色

是否可以使用Illustrator导出AVM2(AS 3)SWF?如果我错了,请纠正我,但据我所知Illustrator CS5仍然输出AVM1(作为1和2)swf。在AS3项目中,所有加载的AS2电影都由flash.display.AVM1Movie类表示。这个类没有显示链子类,它只是一个显示渲染的AVM1片段的DisplayObject。由此可知,您无法访问Illustrator定义的任何符号

我不太确定是否可以使用call()方法调用AVM1Movie中的某个方法。是否可以在Illustrator中添加AS2方法?可能不是

您可以将每个元素作为单个swf导出,也可以选择其他导出格式,如svg

package
{
    import flash.display.AVM1Movie;
    import flash.display.DisplayObject;
    import flash.display.Loader;
    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.display.StageAlign;
    import flash.display.StageScaleMode;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.utils.describeType;

    public class AIImportDemo extends Sprite
    {
        private var __loader:Loader = new Loader();
        public function AIImportDemo()
        {
            super();
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE
            __loader.contentLoaderInfo.addEventListener(Event.COMPLETE,__onComplete);
            __loader.load(new URLRequest('assets/myAIExport.swf'));
        }
        private function __onComplete($e:Event):void{
            addChild(__loader);
            trace(describeType(__loader.content));
            trace("is MovieClip "+ (__loader.content is MovieClip)); // false   
            trace("is Sprite "+ (__loader.content is Sprite)); // false
            trace("is Shape "+ (__loader.content is Shape)); // false
            trace("is AVM1Movie "+ (__loader.content is AVM1Movie)); // true
            trace("is Display Object "+(__loader.content is DisplayObject)); // true

        }
    }
}

最好的选择是将Illustrator中的对象复制/粘贴到Flash CS。这样,向量对象可以作为3个形状对象进行移植。您也可以将它们拆分为不同的符号等。

通过“Illustrator SWF”,您的意思是您在Adobe Illustrator中使用了一些“导出为SWF”选项吗?或者你是说别的什么?看起来这个问题没有任何Flex特定的内容,所以我想删除Flex标签并添加Flash标签。是的,我正在使用Illustrator以swf导出。我是us Flex 4.5来创建程序,flash来创建图形。(该程序允许用户更改外部加载swf文件图形中的颜色。)如果我使用flash创建图形,它工作正常,但当我使用illustrator时,我很难检测到符号。这可能吗。