mirror of
https://github.com/Gongxh0901/kunpolibrary
synced 2026-05-07 04:16:38 +00:00
添加内部属性标记
This commit is contained in:
@@ -19,6 +19,7 @@ export class ComponentExtendHelper {
|
||||
/**
|
||||
* 注册自定义组件信息
|
||||
* @param info
|
||||
* @internal
|
||||
*/
|
||||
private static registerComponent(ctor: any, pkg: string, name: string): void {
|
||||
// 自定义组件扩展
|
||||
|
||||
@@ -17,43 +17,52 @@ export interface IWindow {
|
||||
bgAlpha: number;
|
||||
/**
|
||||
* 窗口适配 (框架内部使用)
|
||||
* @internal
|
||||
*/
|
||||
_adapted(): void;
|
||||
|
||||
/**
|
||||
* 初始化方法 (框架内部使用)
|
||||
* @param swallowTouch 是否吞噬触摸事件
|
||||
* @internal
|
||||
*/
|
||||
_init(swallowTouch: boolean, bgAlpha: number): void;
|
||||
/**
|
||||
* 窗口关闭 (框架内部使用)
|
||||
* @internal
|
||||
*/
|
||||
_close(): void;
|
||||
/**
|
||||
* 显示窗口 (框架内部使用)
|
||||
* @param userdata 用户自定义数据
|
||||
* @internal
|
||||
*/
|
||||
_show(userdata?: any): void;
|
||||
/**
|
||||
* 从隐藏状态恢复显示
|
||||
* @internal
|
||||
*/
|
||||
_showFromHide(): void;
|
||||
/**
|
||||
* 隐藏窗口 (框架内部使用)
|
||||
* @internal
|
||||
*/
|
||||
_hide(): void;
|
||||
/**
|
||||
* 窗口被遮挡 被同组或者不同组的其他窗口覆盖 (框架内部使用)
|
||||
* @internal
|
||||
*/
|
||||
_cover(): void;
|
||||
/**
|
||||
* 恢复窗口遮挡 被同组或者不同组的其他窗口覆盖恢复 (框架内部使用)
|
||||
* @internal
|
||||
*/
|
||||
_recover(): void;
|
||||
|
||||
/**
|
||||
* 调整窗口的显示层级
|
||||
* @param depth
|
||||
* @internal
|
||||
*/
|
||||
_setDepth(depth: number): void;
|
||||
|
||||
@@ -75,5 +84,6 @@ export interface IWindow {
|
||||
/** 获取资源栏数据 */
|
||||
getHeaderInfo(): WindowHeaderInfo;
|
||||
|
||||
/** @internal */
|
||||
_setHeader(header: IWindowHeader): void;
|
||||
}
|
||||
@@ -11,35 +11,49 @@ export interface IWindowHeader {
|
||||
name: string;
|
||||
/** 窗口适配类型 */
|
||||
adapterType: AdapterType;
|
||||
/** 引用计数 */
|
||||
/** 引用计数 @internal */
|
||||
_refCount: number;
|
||||
/**
|
||||
* 初始化 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_init(): void;
|
||||
/**
|
||||
* 窗口适配 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_adapted(): void;
|
||||
/**
|
||||
* 显示 (内部方法)
|
||||
* @param {IWindow} window 所属窗口
|
||||
* @internal
|
||||
*/
|
||||
_show(window: IWindow): void;
|
||||
/**
|
||||
* 隐藏 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_hide(): void;
|
||||
/**
|
||||
* 关闭 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_close(): void;
|
||||
|
||||
/** 增加引用计数 (内部方法) */
|
||||
/**
|
||||
* 增加引用计数 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_addRef(): void;
|
||||
/** 减少引用计数 (内部方法) */
|
||||
/**
|
||||
* 减少引用计数 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_decRef(): number;
|
||||
|
||||
/** 屏幕大小改变时被调用 (内部方法) */
|
||||
/**
|
||||
* 屏幕大小改变时被调用 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
_screenResize(): void;
|
||||
}
|
||||
|
||||
@@ -16,13 +16,16 @@ interface IPropsInfo {
|
||||
callbacks: (string | number)[];
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export class PropsHelper {
|
||||
/** @internal */
|
||||
private static _config: IPropsConfig = {};
|
||||
/** @internal */
|
||||
public static setConfig(config: IPropsConfig): void {
|
||||
this._config = config;
|
||||
}
|
||||
|
||||
/** 序列化属性 */
|
||||
/** 序列化属性 @internal */
|
||||
public static serializeProps(component: GComponent, packageName: string): void {
|
||||
if (!this._config) {
|
||||
return;
|
||||
@@ -45,7 +48,7 @@ export class PropsHelper {
|
||||
this.serializationCallbacksNode(component, callbacks);
|
||||
}
|
||||
|
||||
/** 给界面中定义的属性赋值 */
|
||||
/** 给界面中定义的属性赋值 @internal */
|
||||
private static serializationPropsNode(component: GComponent, props: (string | number)[]) {
|
||||
const propsCount = props.length;
|
||||
// [name1, len, ...props1, name2, len, ...props2, ...]
|
||||
@@ -65,6 +68,7 @@ export class PropsHelper {
|
||||
}
|
||||
}
|
||||
|
||||
/** 给界面中定义的回调赋值 @internal */
|
||||
private static serializationCallbacksNode(component: GComponent, callbacks: (string | number)[]) {
|
||||
const propsCount = callbacks.length;
|
||||
// [name1, len, ...props1, name2, len, ...props2, ...]
|
||||
|
||||
@@ -6,9 +6,13 @@
|
||||
|
||||
import { ObjectHelper } from "../tool/helper/ObjectHelper";
|
||||
export namespace _uidecorator {
|
||||
/** @internal */
|
||||
const UIPropMeta = "__uipropmeta__"
|
||||
/** @internal */
|
||||
const UICBMeta = "__uicbmeta__"
|
||||
|
||||
|
||||
/** @internal */
|
||||
interface IUIInfoBase {
|
||||
/** 构造函数 */
|
||||
ctor: any;
|
||||
@@ -20,6 +24,7 @@ export namespace _uidecorator {
|
||||
|
||||
/**
|
||||
* 窗口属性注册数据结构
|
||||
* @internal
|
||||
*/
|
||||
interface UIWindowInfo extends IUIInfoBase {
|
||||
/** 配置信息 */
|
||||
@@ -32,7 +37,7 @@ export namespace _uidecorator {
|
||||
name: string;
|
||||
};
|
||||
}
|
||||
/** 用来存储窗口注册信息 */
|
||||
/** 用来存储窗口注册信息 @internal */
|
||||
const uiclassMap: Map<any, UIWindowInfo> = new Map();
|
||||
|
||||
/** 获取窗口注册信息 */
|
||||
@@ -67,6 +72,7 @@ export namespace _uidecorator {
|
||||
|
||||
/**
|
||||
* 组件属性注册数据结构
|
||||
* @internal
|
||||
*/
|
||||
interface IUIComInfo extends IUIInfoBase {
|
||||
/** 配置信息 */
|
||||
@@ -77,7 +83,7 @@ export namespace _uidecorator {
|
||||
name: string;
|
||||
};
|
||||
}
|
||||
/** 用来存储组件注册信息 */
|
||||
/** 用来存储组件注册信息 @internal */
|
||||
let uicomponentMap: Map<string, IUIComInfo> = new Map();
|
||||
|
||||
/** 获取组件注册信息 */
|
||||
@@ -107,6 +113,7 @@ export namespace _uidecorator {
|
||||
|
||||
/**
|
||||
* header属性注册数据结构
|
||||
* @internal
|
||||
*/
|
||||
interface IUIHeaderInfo extends IUIInfoBase {
|
||||
/** 配置信息 */
|
||||
@@ -117,7 +124,7 @@ export namespace _uidecorator {
|
||||
name: string;
|
||||
};
|
||||
}
|
||||
/** 用来存储组件注册信息 */
|
||||
/** 用来存储组件注册信息 @internal */
|
||||
let uiheaderMap: Map<string, IUIHeaderInfo> = new Map();
|
||||
|
||||
/** 获取header注册信息 */
|
||||
|
||||
@@ -16,23 +16,23 @@ import { WindowManager } from "./WindowManager";
|
||||
import { WindowInfo } from "./WindowResPool";
|
||||
|
||||
export class WindowGroup {
|
||||
/** 窗口组的名字 */
|
||||
/** 窗口组的名字 @internal */
|
||||
private _name: string = "";
|
||||
/** 窗口组的根节点 */
|
||||
/** 窗口组的根节点 @internal */
|
||||
private _root: GComponent;
|
||||
/** 忽略顶部窗口查询 */
|
||||
/** 忽略顶部窗口查询 @internal */
|
||||
private _ignoreQuery: boolean = false;
|
||||
/** 吞噬触摸事件 */
|
||||
/** 吞噬触摸事件 @internal */
|
||||
private _swallowTouch: boolean = false;
|
||||
/** 窗口容器中的窗口名列表 */
|
||||
/** 窗口容器中的窗口名列表 @internal */
|
||||
private _windowNames: string[] = [];
|
||||
/** 窗口顶部资源栏 */
|
||||
/** 窗口顶部资源栏 @internal */
|
||||
private _headers: Map<string, WindowHeader> = new Map();
|
||||
/** 半透明遮罩的透明度 */
|
||||
/** 半透明遮罩的透明度 @internal */
|
||||
private _bgAlpha: number = 0;
|
||||
/** 半透明节点 */
|
||||
/** 半透明节点 @internal */
|
||||
private _alphaGraph: GGraph;
|
||||
/** 半透明遮罩的颜色 */
|
||||
/** 半透明遮罩的颜色 @internal */
|
||||
private _color: Color = new Color(0, 0, 0, 255);
|
||||
|
||||
/**
|
||||
@@ -65,6 +65,8 @@ export class WindowGroup {
|
||||
* @param root 窗口组的根节点 一个fgui的组件
|
||||
* @param ignoreQuery 是否忽略顶部窗口查询
|
||||
* @param swallowTouch 是否吞掉触摸事件
|
||||
* @param bgAlpha 半透明遮罩的透明度
|
||||
* @internal
|
||||
*/
|
||||
constructor(name: string, root: GComponent, ignoreQuery: boolean, swallowTouch: boolean, bgAlpha: number) {
|
||||
this._name = name;
|
||||
@@ -86,6 +88,7 @@ export class WindowGroup {
|
||||
/**
|
||||
* 根据窗口名创建窗口 并添加到显示节点
|
||||
* @param windowName 窗口名
|
||||
* @internal
|
||||
*/
|
||||
private _createWindow(pkg: string, name: string): WindowBase {
|
||||
let window = UIPackage.createObject(pkg, name) as WindowBase;
|
||||
@@ -99,6 +102,11 @@ export class WindowGroup {
|
||||
return window;
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加窗口到显示节点
|
||||
* @param window 窗口
|
||||
* @internal
|
||||
*/
|
||||
private _addWindow(window: WindowBase): void {
|
||||
this._root.addChild(window);
|
||||
WindowManager._addWindow(window.name, window);
|
||||
@@ -125,6 +133,7 @@ export class WindowGroup {
|
||||
/**
|
||||
* 移除指定名称的窗口。
|
||||
* @param name 窗口的名称。
|
||||
* @internal
|
||||
*/
|
||||
public _removeWindow(name: string): void {
|
||||
let index = this._windowNames.lastIndexOf(name);
|
||||
@@ -162,6 +171,7 @@ export class WindowGroup {
|
||||
/**
|
||||
* 将指定名称的窗口移动到窗口组的最顶层。
|
||||
* @param name 窗口的名称。
|
||||
* @internal
|
||||
*/
|
||||
public _moveWindowToTop(name: string): boolean {
|
||||
let isMoved = false;
|
||||
@@ -198,6 +208,7 @@ export class WindowGroup {
|
||||
* 处理index下层窗口的隐藏状态的私有方法。递归调用
|
||||
* @param index - 窗口索引
|
||||
* @param isRecursion - 是否递归调用
|
||||
* @internal
|
||||
*/
|
||||
private _processWindowHideStatus(index: number, isRecursion: boolean = true): void {
|
||||
if (index < 0) {
|
||||
@@ -237,6 +248,8 @@ export class WindowGroup {
|
||||
/**
|
||||
* 新创建窗口时,根据新创建的窗口类型
|
||||
* 处理上一个窗口或者所有窗口的关闭
|
||||
* @param window 新创建的窗口
|
||||
* @internal
|
||||
*/
|
||||
private _processWindowCloseStatus(window: IWindow): void {
|
||||
// 新创建窗口 如果需要关闭窗口或者关闭所有窗口 处理窗口的关闭
|
||||
@@ -263,7 +276,10 @@ export class WindowGroup {
|
||||
}
|
||||
}
|
||||
|
||||
/** 处理header的显示状态 并调整层级 */
|
||||
/**
|
||||
* 处理header的显示状态 并调整层级
|
||||
* @internal
|
||||
*/
|
||||
private _processHeaderStatus(): void {
|
||||
// 找到第一个要显示的header
|
||||
let firstHeader: WindowHeader = null;
|
||||
@@ -303,6 +319,7 @@ export class WindowGroup {
|
||||
/**
|
||||
* 调整指定窗口的透明度图形。并根据窗口的背景透明度绘制半透明遮罩。
|
||||
* @param window - 需要调整透明度的窗口对象。
|
||||
* @internal
|
||||
*/
|
||||
private _adjustAlphaGraph(window: IWindow): void {
|
||||
this._root.setChildIndex(this._alphaGraph, this._root.numChildren - 1);
|
||||
@@ -329,7 +346,7 @@ export class WindowGroup {
|
||||
}
|
||||
|
||||
|
||||
/** 根据窗口 创建顶部资源栏 (内部方法) */
|
||||
/** 根据窗口 创建顶部资源栏 (内部方法) @internal */
|
||||
private _createHeader(window: IWindow): void {
|
||||
// 只有创建界面的时候, 才会尝试创建顶部资源栏
|
||||
let headerInfo = window.getHeaderInfo();
|
||||
@@ -362,6 +379,7 @@ export class WindowGroup {
|
||||
/**
|
||||
* 顶部资源栏窗口 从管理器中移除 (内部方法)
|
||||
* @param header 资源栏
|
||||
* @internal
|
||||
*/
|
||||
public _removeHeader(header: WindowHeader): void {
|
||||
if (this._headers.has(header.name)) {
|
||||
@@ -376,12 +394,13 @@ export class WindowGroup {
|
||||
/**
|
||||
* 获取顶部资源栏 (内部方法)
|
||||
* @param name 资源栏的名称
|
||||
* @internal
|
||||
*/
|
||||
public _getHeader<T extends WindowHeader>(name: string): T | null {
|
||||
return this._headers.get(name) as T;
|
||||
}
|
||||
|
||||
/** 屏幕大小改变时被调用 (内部方法) */
|
||||
/** 屏幕大小改变时被调用 (内部方法) @internal */
|
||||
public _screenResize(): void {
|
||||
this._headers.forEach((header) => {
|
||||
header._screenResize();
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
export class WindowHeaderInfo {
|
||||
/** header名字 */
|
||||
name: string;
|
||||
/** 自定义数据 用于Header窗口 onShow方法的自定义参数 */
|
||||
/** 自定义数据 用于Header窗口 onShow方法的自定义参数 @internal */
|
||||
userdata: any;
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,13 +13,13 @@ import { WindowGroup } from "./WindowGroup";
|
||||
import { WindowResPool } from "./WindowResPool";
|
||||
|
||||
export class WindowManager {
|
||||
/** 窗口组 */
|
||||
/** 窗口组 @internal */
|
||||
private static _groups: Map<string, WindowGroup> = new Map();
|
||||
/** 不忽略查询的窗口组名 */
|
||||
/** 不忽略查询的窗口组名 @internal */
|
||||
private static _queryGroupNames: string[] = [];
|
||||
/** 所有窗口全部放到这个map中 */
|
||||
/** 所有窗口全部放到这个map中 @internal */
|
||||
private static _windows: Map<string, IWindow> = new Map();
|
||||
/** 初始化时传入实例 */
|
||||
/** 初始化时传入实例 @internal */
|
||||
private static _resPool: WindowResPool;
|
||||
|
||||
/** 配置UI包的一些信息 (可以不配置 完全手动管理) */
|
||||
@@ -175,6 +175,7 @@ export class WindowManager {
|
||||
/**
|
||||
* 初始化窗口管理器,设置资源池。 (框架内部使用)
|
||||
* @param resPool - 窗口资源池实例。
|
||||
* @internal
|
||||
*/
|
||||
public static _init(resPool: WindowResPool): void {
|
||||
this._resPool = resPool;
|
||||
@@ -184,6 +185,7 @@ export class WindowManager {
|
||||
* 向窗口管理器添加一个新窗口。 (框架内部使用)
|
||||
* @param name 窗口的唯一标识符。
|
||||
* @param window 要添加的窗口对象,需实现 IWindow 接口。
|
||||
* @internal
|
||||
*/
|
||||
public static _addWindow(name: string, window: IWindow): void {
|
||||
this._windows.set(name, window);
|
||||
@@ -192,6 +194,7 @@ export class WindowManager {
|
||||
/**
|
||||
* 移除指定名称的窗口。 (框架内部使用)
|
||||
* @param name 窗口的名称。
|
||||
* @internal
|
||||
*/
|
||||
public static _removeWindow(name: string): void {
|
||||
if (this.hasWindow(name)) {
|
||||
@@ -225,6 +228,7 @@ export class WindowManager {
|
||||
/**
|
||||
* 向窗口管理器添加一个窗口组 如果窗口组名称已存在,则抛出错误. (内部方法)
|
||||
* @param group 要添加的窗口组
|
||||
* @internal
|
||||
*/
|
||||
public static _addWindowGroup(group: WindowGroup): void {
|
||||
if (this._groups.has(group.name)) {
|
||||
@@ -237,6 +241,7 @@ export class WindowManager {
|
||||
|
||||
/**
|
||||
* 屏幕大小改变时 调用所有窗口的screenResize方法 (内部方法)
|
||||
* @internal
|
||||
*/
|
||||
public static _screenResize(): void {
|
||||
this._windows.forEach((window: IWindow) => {
|
||||
@@ -247,6 +252,11 @@ export class WindowManager {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取资源池实例 (内部方法)
|
||||
* @returns {WindowResPool} 资源池实例
|
||||
* @internal
|
||||
*/
|
||||
public static _getResPool(): WindowResPool {
|
||||
return this._resPool;
|
||||
}
|
||||
|
||||
@@ -24,28 +24,34 @@ export interface HeaderInfo {
|
||||
pkg: string;
|
||||
}
|
||||
|
||||
/** @internal */
|
||||
export class WindowResPool {
|
||||
/** 窗口信息池 */
|
||||
/** 窗口信息池 @internal */
|
||||
protected _windowInfos: Map<string, WindowInfo> = new Map<string, any>();
|
||||
/** 窗口header信息池 */
|
||||
/** 窗口header信息池 @internal */
|
||||
protected _headerInfos: Map<string, HeaderInfo> = new Map<string, any>();
|
||||
|
||||
/** 是否设置过配置内容 */
|
||||
/** 是否设置过配置内容 @internal */
|
||||
private _isInit: boolean = false;
|
||||
/** 窗口名对应的包名列表 */
|
||||
/** 窗口名对应的包名列表 @internal */
|
||||
private _windowPkgs: Map<string, string[]> = new Map();
|
||||
/** 包的引用计数 */
|
||||
/** 包的引用计数 @internal */
|
||||
private _pkgRefs: { [pkg: string]: number } = {};
|
||||
/** UI包路径 @internal */
|
||||
private _uipath: string = "";
|
||||
/** 手动管理的包 @internal */
|
||||
private _manualPackages: Set<string> = new Set();
|
||||
/** 立即释放的包 @internal */
|
||||
private _imReleasePackages: Set<string> = new Set();
|
||||
|
||||
/** 注册的回调函数 */
|
||||
/** 注册的回调函数 @internal */
|
||||
private _showWaitWindow: () => void = null;
|
||||
/** 隐藏等待窗口的回调函数 @internal */
|
||||
private _hideWaitWindow: () => void = null;
|
||||
/** 加载失败回调函数 @internal */
|
||||
private _fail: (windowName: string, errmsg: string, pkgs: string[]) => void = null;
|
||||
|
||||
/** 等待窗口的引用计数 */
|
||||
/** 等待窗口的引用计数 @internal */
|
||||
private _waitRef: number = 0;
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user