AS3GIF 让flash可以播放GIF动画文件,以及用ActionScript 3实现GIF编码的功能.
收藏与此,查询方便。
播放功能:
用AS3GIF的类文件,可以通过load一个URLRequest或者load一个ByteArray来加载gif。
范例:
- 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);
- }
- }
- }
编码功能:
范例:
- 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];
- }
- }
- }