当前位置: BOLT界面引擎 > 知识库文章 > SeqImageObject使用指南

SeqImageObject使用指南

作者:李亚星 2013-03-01

XLUE294版本新增了一个元对象:SeqImageObject,这个对象和之前的对象不同之处,在于有了帧的概念,这点上类似序列帧动画,但是又具有其它一切元对象的基本特征(比如alpha通道,响应鼠标和键盘消息等等)

 

 

SeqImageObject有如下特性:

l  逐帧播放gif资源

l  逐帧播放imageseq资源(比使用SeqFrameAnimation更快捷)

l  可设定播放间隔,对于gif对象,既可以是gif图片资源里面自带的间隔,也可以是固定间隔

l  支持暂停、继续操作(目前动画还不支持暂停操作)

l  支持逆序播放(需要注意的是,由于gif资源的存储特性,逆序播放可能会非常慢)

l  支持循环播放

l  高效,基于内部统一的脉冲引擎和xlue自身的高效刷新机制,即使同时播放几百个gif也不会卡

 

SeqImageObject如果是播放gif类型资源,那么需要动态依赖XGP,确保XGP放在xlue所在进程可以加载成功的地方,其中

l  如果进程已经提前加载并初始化xgp库,那么xlue会直接使用

l  否则会尝试加载并初始化

l  如果XGP库不存在,或者初始化失败,那么对象将不显示设定的gif

 

如果只是播放ImageSeq资源,那么不需要依赖XGP

 

 

SeqImageObject有下面几个新属性:

l  gif                       gif的资源id

l  imageseq         ImageSeq的资源id

l  interval             :帧间隔,单位:ms 如果不设置,对于gif资源,将使用图片内部数据,对于ImageSeq,将使用默认值100

l  loop                   :是否倒序播放 1-循环 0-不循环,默认不循环

l  reverse             :是否倒序播放 1-循环 0-不循环,默认是正序播放

 

有下述接口:

 

设置和获取gif资源id和句柄接口

l  SetGifResID

l  GetGifResID

l  SetGif

l  GetGif

 

设置和获取imageseq资源id和句柄接口

l  SetImageSeqResID

l  GetImageSeqResID

l  SetImageSeq

l  GetImageSeq

 

播放控制接口:

l  void Play()                                     开始从第一帧(若为倒序,则从最后一帧)播放             

l  void Resume()                             恢复播放(从当前帧开始播放)

l  void Pause()                                 暂停播放

l  void Stop()                                    停止播放(恢复至第一帧,若为倒序,则恢复最后一帧)

 

属性的设置和获取接口

l  long SetInterval(long)                设置帧间隔,若设置此项,无论内部数据是gif还是imageSeq,都将采用此帧间隔播放。若想重新置为默认值,传入-1

l  long GetInterval()                       获得当前设置的帧间隔

 

l  bool SetReverse(bool)               设置是否逆序播放

l  bool GetReverse()                      查询是否逆序播放

 

l  bool SetLoop(bool)                     设置是否循环播放

l  bool GetLoop()                            查询是否循环播放

 

 

下面是两个xml配置的例子

<obj id="yourID" class="SeqImageObject">

         <attr>

                   <left>0</left>

                   <top>0</top>

                   <width>father.width</width>

                   <height>father.height</height>

                   <loop>1</loop>

                   <reverse>0</reverse>

                   <gif>seqimage_gif</gif>

         </attr>

</obj>

 

<obj id="yourID" class="SeqImageObject">

         <attr>

                   <left>0</left>

                   <top>0</top>

                   <width>father.width</width>

                   <height>father.height</height>

                   <loop>1</loop>

                   <reverse>0</reverse>

                   <interval>100</interval>

                   <imageseq>seqimage_seq</imageseq>

         </attr>

</obj>

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com