Можно ли экспортировать AVM2 (AS 3) SWF с помощью Illustrator? Поправьте меня, если я ошибаюсь, но, насколько я знаю, Illustrator CS5 по-прежнему экспортирует AVM1 (AS 1 & 2) SWF. В проекте AS3 все загруженные фильмы AS2 представлены классом flash.display.AVM1Movie. Этот класс не имеет дочерних цепочек отображения, это просто DisplayObject, показывающий визуализированный клип AVM1. Из этого следует, что вы не можете получить доступ к символам, определенным Illustrator.
Я не совсем уверен, что вы можете использовать метод call () для вызова некоторого метода в AVM1Movie. Можно ли добавить методы AS2 в Illustrator? Вероятно, нет ...
Вы можете экспортировать каждый элемент как отдельный 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
}
}
}