/Jeff

Json Extraction From Flash

Primary LanguageJavaScriptMIT LicenseMIT

jeff

Jeff converts Flash™ SWFs into a JSON/PNG format for high performance usage in HTML/JavaScript. The extracted content could be used to integrate Flash™ Animations in your game using your favorite HTML Game Engine.

Contains a variety of options to allow you to get performance where you need it:

Optimised speed performance:

  • Asset rasterisation (faster than vectorial drawing)
  • Image Atlas creation (to enable batch sprite rendering in WebGL)
  • Extracting images with power of 2 dimensions (to enable mipmapping)

Optimised memory performance:

  • Image compression (lossy and loss-less compressions)
  • Animation Scaling (to rasterise images at the exact size needed)

Optimised ease of use:

  • Gathering several animations in a single output: Reduced number of assets to manage
  • Frame by Frame rasterisation: for easy integration in your game

Very good scalability: from both the command line as well as through the API, it can be used to do batch extraction on multiple SWFs.

Made at Wizcorp.

Install

For command line usage:

npm install jeff -g

For API usage:

npm install jeff

Usage

Command line:

jeff -s mySwf.swf

API:

var jeff = require('jeff');

// Writing extracted data in current folder
var options = {
	source: 'mySwf.swf',
	outDir: '.'
};

jeff(options);


// Returning extracted data in a callback
var options = {
	source: 'mySwf.swf',
	returnData: true
};

jeff(options, function (error, stats, extractedData) {
	// Uncovering conversion stats
	var nbFilesConverted = stats.files;
	var nbErrors         = stats.errors;

	// Fetching extracted data
	var imageNames = extractedData.imageNames;
	var image      = extractedData.images;
	var data       = extractedData.data;
});

Operation

  • Will parse the input directory to find SWF files corresponding to the given source file pattern.
  • Will sequentially parse and process the SWF files.
  • Will export JSON meta-data and images corresponding to the SWF files.

Roadmap for unsupported features

  • Texts (Static/Dynamic)
  • Buttons
  • Embedded fonts
  • Sounds
  • ActionScript

Roadmap for extract options

  • Option to extract shapes under vectorial format
  • Option to extract meta-data under keyframe based format (as opposed to per frame transformation matrix)

For contributors, see SWF File Format Specifications