AS3GIF lets Flash play animated GIF files, and implements GIF encoding in ActionScript 3.

Bookmarking it here for easy lookup.

Playback: Using AS3GIF’s class files, you can load a gif by loading a URLRequest or a ByteArray. Example: package { import flash.display.Sprite; import flash.net.URLRequest; import org.gif.player.GIFPlayer; public class Main extends Sprite { public function Main():void { var request:URLRequest = new URLRequest(“diego.gif”); var player:GIFPlayer = new GIFPlayer(); player.load(request); addChild(player); } } }

Encoding: Example: package { import flash.display.BitmapData; import flash.display.Shape; import flash.display.Sprite; import flash.utils.ByteArray; import org.gif.encoder.GIFEncoder; import org.gif.player.GIFPlayer; public class Main extends Sprite { public function Main():void { var frames:Array = createFrames(); var encoder:GIFEncoder = new GIFEncoder(); encoder.setRepeat(0); //AUTO LOOP encoder.setDelay(500); encoder.start(); //MUST HAVE! encoder.addFrame(frames[0]); encoder.addFrame(frames[1]); encoder.finish(); //MUST HAVE! playGIF(encoder.stream); } private function playGIF(data:ByteArray):void { data.position = 0; var player:GIFPlayer = new GIFPlayer(); player.loadBytes(data); addChild(player); } private function createFrames():Array { var shape:Shape = new Shape(); shape.graphics.lineStyle(1, 0); shape.graphics.moveTo(60, 0); shape.graphics.lineTo(60, 120); var frame1:BitmapData = new BitmapData(120, 120); frame1.draw(shape); shape.graphics.clear(); shape.graphics.lineStyle(1, 0); shape.graphics.moveTo(0, 60); shape.graphics.lineTo(120, 60); var frame2:BitmapData = new BitmapData(120, 120); frame2.draw(shape); return [frame1, frame2]; } } }