白鹭引擎 Layer 管理类,提升游戏弹出框管理效率
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.wing
libs/modules
resource
scripts
src
template
.gitignore
README.md
egretProperties.json
favicon.ico
index.html
manifest.json
screenshot.gif
tsconfig.json
wingProperties.json

README.md

白鹭引擎 LayerManager 解决方案

复杂的游戏中常常一个场景有多个 Layer,并且可能一个 Layer 的操作会派生一个新 Layer。按照一定的规则来统一管理这些 Layer 能降低游戏的复杂度,提升开发的效率。

功能展示

类型指引

declear class LayersDisplayObjectContainer extends egret.DisplayObjectContainer {
    protected layers: Array<egret.DisplayObject>

    /**
     * 务必在使用功能前调用此接口定义好基本样式
     * @param width
     * @param height
     * @param alpha  遮罩的透明度
     */
    ensureBasicStyle(width: number, height: number, alpha?: number): void

    /**
     * 增加一层 Layer
     * @param layer 待添加的弹窗显示对象
     * @returns this
     * 
     * 方法可能抛出的异常:
     *   Error   LayersDisplayObjectContainer 实例还未调用 ensureBasicStyle 进行初始化
     */
    push(layer: egret.DisplayObject): this

    /**
     * 移除顶层 Layer 
     * 
     * 方法可能抛出的异常:
     *   Error   LayersDisplayObjectContainer 实例还未调用 ensureBasicStyle 进行初始化
     */
    pop(): void

    /**
     * 用一个 Layer 替换顶层的 Layer
     * 
     * 方法可能抛出的异常:
     *   Error   LayersDisplayObjectContainer 实例还未调用 ensureBasicStyle 进行初始化
     */
    replacePeak(layer: egret.DisplayObject): void

    /**
     * 清空所有 Layer,再推入一个 Layer
     * 
     * 方法可能抛出的异常:
     *   Error   LayersDisplayObjectContainer 实例还未调用 ensureBasicStyle 进行初始化
     */
    replace(layer: egret.DisplayObject): void

    /**
     * 清除所有 Layer
     */
    clear(): void

    /**
     * 自定义 Layer 的位置(否则默认居中显示)
     * @param layer 
     * @param x
     * @param y
     */
    setLayoutLayerPos(layer: egret.DisplayObject, x: number, y: number): void

    /**
     * 自定义关闭按钮的位置(否则默认紧挨 Layer 下端显示)
     * @param x
     * @param y
     */
    setCloseBtnPos(x: number, y: number): void

    /**
     * 隐藏关闭按钮
     */
    hideCloseBtn(): void

    /**
     * 显示关闭按钮
     */
    showCloseBtn(): void
}

declear class Layer extends egret.Sprite {
    /**
     * @param mountTo Layer 挂载的目标 LayersDisplayObjectContainer
     */
    constructor(mountTo: LayersDisplayObjectContainer)
}

相关链接