:::: 菜单 ::::

AS3的GIF播放器及Encoder

AS3GIF 让flash可以播放GIF动画文件,以及用ActionScript 3实现GIF编码的功能.

收藏与此,查询方便。

播放功能:
用AS3GIF的类文件,可以通过load一个URLRequest或者load一个ByteArray来加载gif。
范例:

  1. package 
  2. {
  3.         import flash.display.Sprite;
  4.         import flash.net.URLRequest;
  5.         import org.gif.player.GIFPlayer;
  6.        
  7.         public class Main extends Sprite
  8.         {
  9.                 public function Main():void
  10.                 {
  11.                         var request:URLRequest = new URLRequest("diego.gif");
  12.                        
  13.                         var player:GIFPlayer = new GIFPlayer();
  14.                         player.load(request);
  15.                        
  16.                         addChild(player);
  17.                 }
  18.         }
  19. }

编码功能:
范例:

  1. package 
  2. {
  3.         import flash.display.BitmapData;
  4.         import flash.display.Shape;
  5.         import flash.display.Sprite;
  6.         import flash.utils.ByteArray;
  7.         import org.gif.encoder.GIFEncoder;
  8.         import org.gif.player.GIFPlayer;
  9.        
  10.         public class Main extends Sprite
  11.         {
  12.                 public function Main():void
  13.                 {
  14.                         var frames:Array = createFrames();
  15.                        
  16.                         var encoder:GIFEncoder = new GIFEncoder();
  17.                        
  18.                         encoder.setRepeat(0);                   //AUTO LOOP
  19.                         encoder.setDelay(500);
  20.                        
  21.                         encoder.start();                        //MUST HAVE!
  22.                        
  23.                         encoder.addFrame(frames[0]);
  24.                         encoder.addFrame(frames[1]);
  25.                        
  26.                         encoder.finish();                       //MUST HAVE!
  27.                        
  28.                         playGIF(encoder.stream);
  29.                 }
  30.                
  31.                 private function playGIF(data:ByteArray):void
  32.                 {
  33.                         data.position = 0;
  34.                        
  35.                         var player:GIFPlayer = new GIFPlayer();
  36.                         player.loadBytes(data);
  37.                        
  38.                         addChild(player);
  39.                 }
  40.                
  41.                 private function createFrames():Array
  42.                 {
  43.                         var shape:Shape = new Shape();
  44.                         shape.graphics.lineStyle(1, 0);
  45.                        
  46.                         shape.graphics.moveTo(60, 0);
  47.                         shape.graphics.lineTo(60, 120);
  48.                        
  49.                         var frame1:BitmapData = new BitmapData(120, 120);
  50.                         frame1.draw(shape);
  51.                        
  52.                         shape.graphics.clear();
  53.                        
  54.                         shape.graphics.lineStyle(1, 0);
  55.                         shape.graphics.moveTo(0, 60);
  56.                         shape.graphics.lineTo(120, 60);
  57.                        
  58.                         var frame2:BitmapData = new BitmapData(120, 120);
  59.                         frame2.draw(shape);
  60.                        
  61.                         return [frame1, frame2];
  62.                 }
  63.         }
  64. }

延伸阅读


本文对您有用吗? 何不留下评论继续交流?