as3的gif播放器及encoder

更新时间:15-10-23 22:50 热度:407
 

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. }