egret.SpriteSheet
包 egret
类 public class SpriteSheet
继承 egret.SpriteSheet → egret.HashObject
SpriteSheet 是一张由多个子位图拼接而成的集合位图,它包含多个 Texture 对象。每一个 Texture 都共享 SpriteSheet 的集合位图,但是指向它的不同的区域。在WebGL / OpenGL上,这种做法可以显著提升性能同时,SpriteSheet可以很方便的进行素材整合,降低HTTP请求数量SpriteSheet 格式的具体规范可以参见此文档 https://github.com/egret-labs/egret-core/wiki/Egret-SpriteSheet-Specification
公共属性
| 属性 | 
|---|
公共方法
| 方法 | 
|---|
| SpriteSheet(texture:egret.Texture)   创建一个 egret.SpriteSheet 对象  | 
| createTexture(name:string,bitmapX:number,bitmapY:number,bitmapWidth:number,bitmapHeight:number,offsetX:number,offsetY:number,textureWidth:number,textureHeight:number):egret.Texture   为 SpriteSheet 上的指定区域创建一个新的 Texture 对象并缓存它  | 
| dispose():void   释放纹理  | 
| getTexture(name:string):egret.Texture   根据指定纹理名称获取一个缓存的 Texture 对象  | 
属性详细信息
方法详细信息
SpriteSheet()
public SpriteSheet(texture:egret.Texture)
创建一个 egret.SpriteSheet 对象
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 - 参数
- texture:egret.Texture - 纹理
 
 
createTexture()
public createTexture(name:string,bitmapX:number,bitmapY:number,bitmapWidth:number,bitmapHeight:number,offsetX:number,offsetY:number,textureWidth:number, textureHeight:number):egret.Texture
为 SpriteSheet 上的指定区域创建一个新的 Texture 对象并缓存它
支持版本:Egret 2.4
运行平台:Web,Native
参数
- name:string - 缓存这个 Texture 对象所使用的名称,如果名称已存在,将会覆盖之前的 Texture 对象
 - bitmapX:number - 纹理区域在 bitmapData 上的起始坐标x
 - bitmapY:number - 纹理区域在 bitmapData 上的起始坐标y
 - bitmapWidth:number - 纹理区域在 bitmapData 上的宽度
 - bitmapHeight:number - 纹理区域在 bitmapData 上的高度
 - offsetX:number - 原始位图的非透明区域 x 起始点
 - offsetY:number - 原始位图的非透明区域 y 起始点
 - textureWidth:number - 原始位图的高度,若不传入,则使用 bitmapWidth 的值。
 - textureHeight:number - 原始位图的宽度,若不传入,则使用 bitmapHeight 的值。
 
返回:创建的 Texture 对象
dispose()
public dispose():void
释放纹理
- 支持版本:Egret 2.4
 - 运行平台:Web,Native
 
getTexture()
public getTexture(name:string):egret.Texture
根据指定纹理名称获取一个缓存的 Texture 对象
支持版本:Egret 2.4
运行平台:Web,Native
参数
- name:string - 缓存这个 Texture 对象所使用的名称
 
返回:Texture 对象
示例
/*
 * 以下示例演示了使用 SpriteSheet 处理合并后的大图。
 * 可以配合 RES 模块进行加载,RES模块封装了对 SpriteSheet 的使用。
 */
class  SpriteSheetExample  extends  egret.DisplayObjectContainer  {
  public  constructor()  {
    super();
    this.startLoad();
  }
  private  startLoad():void  {
    //创建 ImageLoader 对象
    var loader:egret.ImageLoader  =  new  egret.ImageLoader();
    //添加加载完成侦听
    loader.addEventListener(egret.Event.COMPLETE,  this.onLoadComplete,  this);
    var url:string =  "resource/assets/egret_icon.png";
    //开始加载
    loader.load(url);
  }
  private  onLoadComplete(event:egret.Event):void  {
    var loader:egret.ImageLoader  =  <egret.ImageLoader>event.target;
    //获取加载到的纹理对象
    var bitmapData:egret.BitmapData  = loader.data;
    //创建纹理对象
    var texture =  new  egret.Texture();
    texture.bitmapData  = bitmapData;
    //创建 SpriteSheet 对象
    var spriteSheet:egret.SpriteSheet  =  new  egret.SpriteSheet(texture);
    egret.log(spriteSheet.getTexture("part1"));//null
    //创建一个新的 Texture 对象
    spriteSheet.createTexture("part1",  0,  0,  100,  100);
    egret.log(spriteSheet.getTexture("part1"));//egret.Texture
  }
}

