package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.geom.Rectangle;
import flash.net.URLRequest;
import org.bytearray.gif.events.GIFPlayerEvent;
import org.bytearray.gif.player.GIFPlayer;
[SWF(width='900',height='530')]
public class gifPlayer extends Sprite
{
public function gifPlayer()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var gifplayer:GIFPlayer= new GIFPlayer();
// gifplayer.height=120;
// gifplayer.width=300;
var img:Sprite=new Sprite();
addChild(img);
img.addChild(gifplayer);
// img.width=300;
// img.height=120;
//gifplayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );
// listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded
gifplayer.addEventListener ( GIFPlayerEvent.COMPLETE, imageLoadComplete );
function imageLoadComplete(evt:GIFPlayerEvent):void{
gifplayer.x=50;
gifplayer.y=5;
var FrameRect:Rectangle = evt.rect;
// img.width=300;
// img.height=120;
gifplayer.removeEventListener(GIFPlayerEvent.COMPLETE, imageLoadComplete);
//trace(FrameRect.width+" ");
}
gifplayer.load ( new URLRequest ("assets/test.gif") );
}
}
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.errors.IOError;
import flash.events.IOErrorEvent;
import flash.geom.Rectangle;
import flash.net.URLRequest;
import org.bytearray.gif.events.GIFPlayerEvent;
import org.bytearray.gif.player.GIFPlayer;
[SWF(width='900',height='530')]
public class gifPlayer extends Sprite
{
public function gifPlayer()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
var gifplayer:GIFPlayer= new GIFPlayer();
// gifplayer.height=120;
// gifplayer.width=300;
var img:Sprite=new Sprite();
addChild(img);
img.addChild(gifplayer);
// img.width=300;
// img.height=120;
//gifplayer.addEventListener ( IOErrorEvent.IO_ERROR, onIOError );
// listen for the GIFPlayerEvent.COMPLETE event, dispatched when GIF is loaded
gifplayer.addEventListener ( GIFPlayerEvent.COMPLETE, imageLoadComplete );
function imageLoadComplete(evt:GIFPlayerEvent):void{
gifplayer.x=50;
gifplayer.y=5;
var FrameRect:Rectangle = evt.rect;
// img.width=300;
// img.height=120;
gifplayer.removeEventListener(GIFPlayerEvent.COMPLETE, imageLoadComplete);
//trace(FrameRect.width+" ");
}
gifplayer.load ( new URLRequest ("assets/test.gif") );
}
}
}
上面是AS上传GIF动态图片的例子,这例子很多,但是发现一个地方没?就是设置图片大小的地方都被我注释掉了,这个不是没作用,是设置了大小之后就不显示这个gif图片了,这个切记,要设置大小,我是通过设置scaleX,scaleY来控制大小的,附件是网上的源码加例子·····只是这个设置大小的地方提醒一下大家。
经过别人提醒
可以使用gifplayer.addEventListener ( FrameEvent.FRAME_RENDERED, resetPosition );
protected function resetPosition(e:FrameEvent):void
{
gifplayer.width=300;
gifplayer.height=50;
}
来设置图片的大小;但是感觉这样没有通过设置scaleX,scaleY来控制大小的的好,因为这个方法里面每一帧都在运行resetPosition这个设置方法,感觉这样会比较消耗内存。