Skip to content
This repository has been archived by the owner on May 15, 2022. It is now read-only.

Shape Export

claus edited this page Aug 13, 2010 · 21 revisions

With as3swf you can export any shape contained in a SWF, including font shapes of embedded fonts, to any format. You can redraw shapes with Actionscript at runtime, or export source code (Actionscript, Objective-C, SVG, etc).

public function ShapeExport() {
  var request:URLRequest = new URLRequest("any.swf");
  var loader:URLLoader = new URLLoader();
  loader.dataFormat = URLLoaderDataFormat.BINARY;
  loader.addEventListener(Event.COMPLETE, completeHandler);
  loader.load(request);
}
private function completeHandler(e:Event):void {
  var swf:SWF = new SWF();
  swf.loadBytes(URLLoader(e.target).data as ByteArray);
  for (var i:uint = 0; i < swf.tags.length; i++) {
    var tag:ITag = swf.tags[i];
    if (tag is TagDefineShape) {
      TagDefineShape(tag).export();
    }
  }
}

The export() method expects a SAX-style callback handler instance that implements IShapeExportDocumentHandler. If no such handler is provided, it uses DefaultShapeExportDocumentHandler which simply traces Actionscript commands to the console.


Limitations

So far only simple strokes and fills are supported (no gradient or bitmap fills, etc). I’m working on it.

Clone this wiki locally