用as3写的播放gif,强,最近刚好要动态调用外部gif,嘻嘻,好好研究研究!
AS3 GIF Player Class 0.2 [ by Thibault Imbert ]

After working with the GIF format in ActionScript 3 since a few days, I wanted to be able to load animated GIF’s into the player which is not possible for the moment. If you load a GIF file with the flash.display.Loader class you will only get the first frame of the animation.
With this new GIFPlayer class, everything is handled, I have added some methods as you would call on a traditional flash.display.MovieClip
To load an animated GIF you would do :
- // we create the GIFPlayer, it plays automatically by default
- var myGIFPlayer:GIFPlayer = new GIFPlayer();
- // we show it
- addChild ( myGIFPlayer );
- // we load a gif file
- myGIFPlayer.load ( new URLRequest ("animation.gif") );
- // you can also load any valid GIF stream (ByteArray) with the loadBytes method (version 0.2)
- myGIFPlayer.loadBytes ( gifStream );
- // listen for the IOErrorEvent.IO_ERROR event, dispatched when the GIF fails to load
- myGIFPlayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );
- // listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded
- myGIFPlayer.addEventListener ( GIFPlayerEvent.COMPLETE, onCompleteGIFLoad );
- // listen for the FrameEvent.FRAME_RENDERED event, dispatched when a GIF frame is rendered on screen
- myGIFPlayer.addEventListener ( FrameEvent.FRAME_RENDERED, onFrameRendered );
- // listen for the FileTypeEvent.INVALID event, dispatched when an invalid file is loaded
- myGIFPlayer.addEventListener ( FileTypeEvent.INVALID, onInvalidFileLoaded );
- // get total frames
- myGIFPlayer.totalFrames;
- // standard methods
- myGIFPlayer.play();
- myGIFPlayer.stop();
- myGIFPlayer.gotoAndStop(3);
- myGIFPlayer.gotoAndPlay(3);
// we create the GIFPlayer, it plays automatically by default var myGIFPlayer:GIFPlayer = new GIFPlayer(); // we show it addChild ( myGIFPlayer ); // we load a gif file myGIFPlayer.load ( new URLRequest ("animation.gif") ); // you can also load any valid GIF stream (ByteArray) with the loadBytes method (version 0.2) myGIFPlayer.loadBytes ( gifStream ); // listen for the IOErrorEvent.IO_ERROR event, dispatched when the GIF fails to load myGIFPlayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError ); // listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded myGIFPlayer.addEventListener ( GIFPlayerEvent.COMPLETE, onCompleteGIFLoad ); // listen for the FrameEvent.FRAME_RENDERED event, dispatched when a GIF frame is rendered on screen myGIFPlayer.addEventListener ( FrameEvent.FRAME_RENDERED, onFrameRendered ); // listen for the FileTypeEvent.INVALID event, dispatched when an invalid file is loaded myGIFPlayer.addEventListener ( FileTypeEvent.INVALID, onInvalidFileLoaded ); // get total frames myGIFPlayer.totalFrames; // standard methods myGIFPlayer.play(); myGIFPlayer.stop(); myGIFPlayer.gotoAndStop(3); myGIFPlayer.gotoAndPlay(3);
Please test it, and let me know if you got good results. Please don’t load huge GIF files, some optimization will be done for this one in the following days.
Online Demo :
Projects using GIFPlayer Class :
Piterwilson did a funny experiment with this and the GIFAnimation Encoder class.

This work is licensed under a Creative Commons Attribution 3.0 License.
Sources and documentation available at http://code.google.com/p/as3gif/
本文介绍了一个使用ActionScript 3编写的GIF播放器类,该类能够加载并播放动态GIF文件。通过简单的API调用即可实现GIF文件的加载、播放控制等功能,并提供了错误处理机制。
1403

被折叠的 条评论
为什么被折叠?



