AS3添加gif动画以及设置大小

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") );

}
}

}



上面是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这个设置方法,感觉这样会比较消耗内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值