2011-07-12 36 views
3

從Illustrator SWF訪問內容時遇到問題(我使用illustrator創建了swf,導出了I Save layers as symbols)。 當我使用Flash創建我的swf文件時,我可以使用此代碼訪問形狀和符號。Flex或Actionscript從外部Illustrator訪問內容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;      

} 

但是,當我使用Illustrator創建我的SWF文件,它返回任何結果。

如何我可以訪問的內容和改變的插畫SWF

+0

「Illustrator SWF」你的意思是說你在Adobe Illustrator中使用了一些「導出爲SWF」選項?或者你的意思是別的嗎?它看起來不像這個問題有任何Flex特定內容,所以我很樂意刪除Flex標籤並添加Flash標籤。 – JeffryHouser

+0

是的,我正在用Illustrator導出爲swf格式。我用我們的Flex 4.5來創建該程序,並使用閃光燈來創建圖形(該程序將允許用戶更改外部加載的swf文件的圖形中的顏色。)如果使用閃光燈創建圖形,它可以正常工作,但是當我使用插畫,我很難檢測符號。這甚至是可能的。 – user747344

回答

1

的顏色是否有可能導出AVM2(AS 3)SWF的使用Illustrator?糾正我,如果我錯了,但據我所知Illustrator CS5仍導出AVM1(AS 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 

     } 
    } 
} 
0

最好的選擇是將您的對象從Illustrator複製/粘貼到Flash CS。這樣,矢量對象可以作爲AS3 Shape對象移植。你也可以將它們分成不同的符號等等......