AS3的GIF播放器及Encoder

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

  • 介绍
  • as3gif下载地址(Google Code)

收藏与此,查询方便。

播放功能:
用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. }

IT时代网(关注微信公众号ITtime2000,定时推送,互动有福利惊喜)所有原创文章版权所有,未经授权,转载必究。
创客100创投基金成立于2015年,直通硅谷,专注于TMT领域早期项目投资。LP均来自政府、互联网IT、传媒知名企业和个人。创客100创投基金对IT、通信、互联网、IP等有着自己独特眼光和丰富的资源。决策快、投资快是创客100基金最显著的特点。

相关文章
中芯国际联手国家队斥500亿投建12吋晶圆制造 什么信号?
中芯国际等被美列黑名单 外交部:坚决反对美方无端打压中国企业
中芯国际遭“断粮”背后:芯片产业链加速国产化
被美国列入“黑名单”?中芯国际:未收到此类官方消息

精彩评论