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
}
}