declare module laya.ani {
/**
* 销毁此对象。以及销毁引用的Texture 彻底清理资源。 注意:会强制解锁清理。 彻底清理资源。 注意:会强制解锁清理。 彻底清理资源。 注意:会强制解锁清理。 目前Media在移动平台只支持Android,不支持IOS。只可在FireFox完整地使用,Chrome测试时无法捕捉视频。 关于Video支持的所有事件参见:http://www.w3school.com.cn/tags/html_ref_audio_video_dom.asp。
* 注意: MDN Video链接: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video buffered.length返回缓冲范围个数。如获取第一个缓冲范围则是buffered.start(0)和buffered.end(0)。以秒计。 只有 Google Chrome 和 Safari 支持 playbackRate 属性。
* listen()的回调处理器接受四个参数:
* AnimationPlayer
类用于动画播放器。
*/
class AnimationPlayer extends laya.events.EventDispatcher {
_fullFrames: ArrayMovieClip
用于播放经过工具处理后的 swf 动画。MovieClip
实例。
* @param parentMovieClip 父MovieClip,自己创建时不需要传该参数
*/
constructor(parentMovieClip?: MovieClip);
/**
* CameraAnimations
类用于创建摄像机动画组件。
*/
class CameraAnimations extends KeyframeAnimations {
protected _cacheAnimationDatas: ArrayCameraAnimations
实例。
*/
constructor();
/**
* @private
* 初始化载入摄像机动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新摄像机动画组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component.animation {
/**
* KeyframeAnimation
类用于帧动画组件的父类。
*/
class KeyframeAnimations extends laya.d3.component.Component3D {
protected _url: string;
protected _player: laya.ani.AnimationPlayer;
_templet: laya.ani.KeyframesAniTemplet;
/**
* 获取url地址。
* @return 地址。
*/
/**
* 设置url地址。
* @param value 地址。
*/
url: string;
/**
* 获取动画播放器。
* @return 动画播放器。
*/
player: laya.ani.AnimationPlayer;
/**
* 获取播放器帧率。
* @return 播放器帧率。
*/
currentFrameIndex: number;
/**
* 获取播放器的动画索引。
* @return 动画索引。
*/
currentAnimationClipIndex: number;
/**
* 获取播放器当前动画的节点数量。
* @return 节点数量。
*/
NodeCount: number;
/**
* 创建一个新的 KeyframeAnimation
实例。
*/
constructor();
/**
* @private
* 载入组件时执行
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 卸载组件时执行
*/
_unload(owner: laya.d3.core.Sprite3D): void;
/**
* 停止播放当前动画
* @param immediate 是否立即停止
*/
stop(immediate?: boolean): void;
}
}
declare module laya.d3.component.animation {
/**
* RigidAnimations
类用于创建变换动画组件。
*/
class RigidAnimations extends KeyframeAnimations {
/**
* 设置url地址。
* @param value 地址。
*/
url: string;
/**
* 创建一个新的 RigidAnimations
实例。
*/
constructor();
/**
* @private
* 初始化载入摄像机动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新摄像机动画组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 卸载组件时执行。
*/
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component.animation {
/**
* SkinAnimations
类用于创建蒙皮动画组件。
*/
class SkinAnimations extends KeyframeAnimations {
protected static _computeSubMeshAniDatas(subMeshIndex: number, index: Uint8Array, bonesData: Float32Array, animationDatas: ArraySkinAnimations
实例。
*/
constructor();
/**
* @private
* 初始化载入蒙皮动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* 预缓存帧动画数据(需确保动画模板、模型模板都已加载完成)。
* @param animationClipIndex 动画索引
* @param meshTemplet 动画模板
*/
preComputeKeyFrames(animationClipIndex: number): void;
/**
* @private
* 更新蒙皮动画组件。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
*在渲染前更新蒙皮动画组件渲染参数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component.animation {
/**
* UVAnimations
类用于创建UV动画组件。
*/
class UVAnimations extends KeyframeAnimations {
/**
* 创建一个新的 UVAnimations
实例。
*/
constructor();
/**
* @private
* 初始化载入UV动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新UV动画组件。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
*在渲染前更新UV动画组件渲染参数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component {
/**
* AttachPoint
类用于创建挂点组件。
*/
class AttachPoint extends Component3D {
protected _attachSkeleton: laya.d3.component.animation.SkinAnimations;
protected _data: Float32Array;
protected _extenData: Float32Array;
/**挂点骨骼的名称。*/
attachBones: ArrayAttachPoint
实例。
*/
constructor();
/**
* @private
* 初始化载入挂点组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 更新挂点组件。
* @param state 渲染状态。
*/
_update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.component {
/**
* Component3D
类用于创建组件的父类。
*/
class Component3D extends laya.events.EventDispatcher implements laya.d3.core.render.IUpdate {
protected static _uniqueIDCounter: number;
protected _id: number;
protected _cachedOwnerLayerMask: number;
protected _cachedOwnerEnable: boolean;
protected _enable: boolean;
protected _owner: laya.d3.core.Sprite3D;
/**是否已执行start函数。*/
started: boolean;
/**
* 获取唯一标识ID。
* @return 唯一标识ID。
*/
id: number;
/**
* 获取所属Sprite3D节点。
* @return 所属Sprite3D节点。
*/
owner: laya.d3.core.Sprite3D;
/**
* 获取是否启用。
* @return 是否启动。
*/
/**
* 设置是否启用。
* @param value 是否启动
*/
enable: boolean;
/**
* 获取是否激活。
* @return 是否激活。
*/
isActive: boolean;
/**
* 获取是否可见。
* @return 是否可见。
*/
isVisible: boolean;
/**
* 创建一个新的 Component3D
实例。
*/
constructor();
protected _onLayerChanged(layer: laya.d3.core.Layer): void;
protected _onEnableChanged(enable: boolean): void;
/**
* @private
* 初始化组件。
* @param owner 所属Sprite3D节点。
*/
_initialize(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 卸载组件。
*/
_uninitialize(): void;
/**
* @private
* 载入组件时执行,可重写此函数。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* @private
* 在任意第一次更新时执行,可重写此函数。
*/
_start(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 更新组件,可重写此函数。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 更新的最后阶段执行,可重写此函数。
* @param state 渲染状态参数。
*/
_lateUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 渲染前设置组件相关参数,可重写此函数。
* @param state 渲染状态参数。
*/
_preRenderUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 渲染的最后阶段执行,可重写此函数。
* @param state 渲染状态参数。
*/
_postRenderUpdate(state: laya.d3.core.render.RenderState): void;
/**
* @private
* 卸载组件时执行,可重写此函数。
*/
_unload(owner: laya.d3.core.Sprite3D): void;
}
}
declare module laya.d3.component {
/**
* PathFinding
类用于创建寻路。
*/
class PathFind extends Component3D {
_setting: any;
/**寻路网格。*/
grid: any;
/**
* 获取寻路设置。
* @return 寻路设置。
*/
/**
* 设置寻路设置。
* @param value 寻路设置。
*/
setting: any;
/**
* 创建一个新的 PathFinding
实例。
*/
constructor();
/**
* @private
* 初始化载入蒙皮动画组件。
* @param owner 所属精灵对象。
*/
_load(owner: laya.d3.core.Sprite3D): void;
/**
* 寻找路径。
* @param startX 开始X。
* @param startZ 开始Z。
* @param endX 结束X。
* @param endZ 结束Z。
* @return 路径。
*/
findPath(startX: number, startZ: number, endX: number, endZ: number): ArrayScript
类用于创建脚本的父类。
*/
class Script extends Component3D {
/**
* 创建一个新的 Script
实例。
*/
constructor();
}
}
declare module laya.d3.core {
/**
* BaseCamera
类用于创建摄像机的父类。
*/
class BaseCamera extends laya.d3.core.Sprite3D {
/**渲染模式,延迟光照渲染,暂未开放。*/
static RENDERINGTYPE_DEFERREDLIGHTING: string;
/**渲染模式,前向渲染。*/
static RENDERINGTYPE_FORWARDRENDERING: string;
/**清除标记,固定颜色。*/
static CLEARFLAG_SOLIDCOLOR: number;
/**清除标记,天空。*/
static CLEARFLAG_SKY: number;
/**清除标记,仅深度。*/
static CLEARFLAG_DEPTHONLY: number;
/**清除标记,不清除。*/
static CLEARFLAG_NONE: number;
protected _tempVector3: laya.d3.math.Vector3;
protected _useUserProjectionMatrix: boolean;
protected _viewportExpressedInClipSpace: boolean;
_projectionMatrixModifyID: number;
/**清楚标记。*/
clearFlag: number;
/**摄像机的清除颜色。*/
clearColor: laya.d3.math.Vector4;
/** 可视遮罩图层。 */
cullingMask: number;
/**天空。*/
sky: laya.d3.resource.models.Sky;
/**获取位置。*/
position: laya.d3.math.Vector3;
/**
* 获取上向量。
* @return 上向量。
*/
up: laya.d3.math.Vector3;
/**
* 获取前向量。
* @return 前向量。
*/
forward: laya.d3.math.Vector3;
/**
* 获取右向量。
* @return 右向量。
*/
right: laya.d3.math.Vector3;
/**
* 获取渲染场景的渲染目标。
* @return 渲染场景的渲染目标。
*/
/**
* 设置渲染场景的渲染目标。
* @param value 渲染场景的渲染目标。
*/
renderTarget: laya.d3.resource.RenderTexture;
/**
* 获取渲染目标的尺寸
* @return 渲染目标的尺寸。
*/
/**
* 设置渲染目标的尺寸
* @param value 渲染目标的尺寸。
*/
renderTargetSize: laya.d3.utils.Size;
/**
* 获取视野。
* @return 视野。
*/
/**
* 设置视野。
* @param value 视野。
*/
fieldOfView: number;
/**
* 获取近裁面。
* @return 近裁面。
*/
/**
* 设置近裁面。
* @param value 近裁面。
*/
nearPlane: number;
/**
* 获取远裁面。
* @return 远裁面。
*/
/**
* 设置远裁面。
* @param value 远裁面。
*/
farPlane: number;
/**
* 获取是否正交投影矩阵。
* @return 是否正交投影矩阵。
*/
/**
* 设置是否正交投影矩阵。
* @param 是否正交投影矩阵。
*/
orthographicProjection: boolean;
/**
* 获取正交投影垂直矩阵尺寸。
* @return 正交投影垂直矩阵尺寸。
*/
/**
* 设置正交投影垂直矩阵尺寸。
* @param 正交投影垂直矩阵尺寸。
*/
orthographicVerticalSize: number;
renderingOrder: number;
/**
* 创建一个 BaseCamera
实例。
* @param fieldOfView 视野。
* @param nearPlane 近裁面。
* @param farPlane 远裁面。
*/
constructor(nearPlane?: number, farPlane?: number);
/**
* 通过RenderingOrder属性对摄像机机型排序。
*/
_sortCamerasByRenderingOrder(): void;
protected _calculateProjectionMatrix(): void;
/**
* 增加可视图层。
* @param layer 图层。
*/
addLayer(layer: laya.d3.core.Layer): void;
/**
* 移除可视图层。
* @param layer 图层。
*/
removeLayer(layer: laya.d3.core.Layer): void;
/**
* 增加所有图层。
*/
addAllLayers(): void;
/**
* 移除所有图层。
*/
removeAllLayers(): void;
ResetProjectionMatrix(): void;
destroy(destroyChild?: boolean): void;
/**
* 向前移动。
* @param distance 移动距离。
*/
moveForward(distance: number): void;
/**
* 向右移动。
* @param distance 移动距离。
*/
moveRight(distance: number): void;
/**
* 向上移动。
* @param distance 移动距离。
*/
moveVertical(distance: number): void;
protected _addSelfRenderObjects(): void;
protected _clearSelfRenderObjects(): void;
}
}
declare module laya.d3.core {
/**
* Camera
类用于创建摄像机。
*/
class Camera extends BaseCamera {
private static _tempVector2;
/**
* 获取横纵比。
* @return 横纵比。
*/
/**
* 设置横纵比。
* @param value 横纵比。
*/
aspectRatio: number;
/**
* 获取屏幕空间的视口。
* @return 屏幕空间的视口。
*/
/**
* 设置屏幕空间的视口。
* @param 屏幕空间的视口。
*/
viewport: laya.d3.math.Viewport;
/**
* 获取裁剪空间的视口。
* @return 裁剪空间的视口。
*/
/**
* 设置裁剪空间的视口。
* @return 裁剪空间的视口。
*/
normalizedViewport: laya.d3.math.Viewport;
needViewport: boolean;
/**
* 获取视图矩阵。
* @return 视图矩阵。
*/
viewMatrix: laya.d3.math.Matrix4x4;
/**获取投影矩阵。*/
/**设置投影矩阵。*/
projectionMatrix: laya.d3.math.Matrix4x4;
/**
* 获取视图投影矩阵。
* @return 视图投影矩阵。
*/
projectionViewMatrix: laya.d3.math.Matrix4x4;
/**
* 创建一个 Camera
实例。
* @param viewport 视口。
* @param fieldOfView 视野。
* @param aspectRatio 横纵比。
* @param nearPlane 近裁面。
* @param farPlane 远裁面。
*/
constructor(aspectRatio?: number, nearPlane?: number, farPlane?: number);
protected _calculateProjectionMatrix(): void;
/**
* 计算从屏幕空间生成的射线。
* @param point 屏幕空间的位置位置。
* @return out 输出射线。
*/
viewportPointToRay(point: laya.d3.math.Vector2, out: laya.d3.math.Ray): void;
/**
* 计算从裁切空间生成的射线。
* @param point 裁切空间的位置。。
* @return out 输出射线。
*/
normalizedViewportPointToRay(point: laya.d3.math.Vector2, out: laya.d3.math.Ray): void;
/**
* 计算从世界空间准换三维坐标到屏幕空间。
* @param position 世界空间的位置。
* @return out 输出位置。
*/
worldToViewportPoint(position: laya.d3.math.Vector3, out: laya.d3.math.Vector3): void;
/**
* 计算从世界空间准换三维坐标到裁切空间。
* @param position 世界空间的位置。
* @return out 输出位置。
*/
worldToNormalizedViewportPoint(position: laya.d3.math.Vector3, out: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core.glitter {
/**
* Glitter
类用于创建闪光。
*/
class Glitter extends laya.d3.core.Sprite3D {
/**
* 获取闪光模板。
* @return 闪光模板。
*/
templet: laya.d3.resource.tempelet.GlitterTemplet;
/**
* 获取刀光渲染器。
* @return 刀光渲染器。
*/
glitterRender: laya.d3.core.GlitterRender;
/**
* 创建一个 Glitter
实例。
* @param settings 配置信息。
*/
constructor(setting: GlitterSetting);
protected _clearSelfRenderObjects(): void;
protected _addSelfRenderObjects(): void;
/**
* @private
* 更新闪光。
* @param state 渲染状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* 通过位置添加刀光。
* @param position0 位置0。
* @param position1 位置1。
*/
addGlitterByPositions(position0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3): void;
/**
* 通过位置和速度添加刀光。
* @param position0 位置0。
* @param velocity0 速度0。
* @param position1 位置1。
* @param velocity1 速度1。
*/
addGlitterByPositionsVelocitys(position0: laya.d3.math.Vector3, velocity0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3, velocity1: laya.d3.math.Vector3): void;
dispose(): void;
}
}
declare module laya.d3.core.glitter {
/**
* Glitter
类用于创建闪光配置信息。
*/
class GlitterSetting {
/** 纹理。 */
texturePath: string;
/** 声明周期。 */
lifeTime: number;
/** 最小分段距离。 */
minSegmentDistance: number;
/** 最小插值距离。 */
minInterpDistance: number;
/** 最大插值数量。 */
maxSlerpCount: number;
/** 颜色。 */
color: laya.d3.math.Vector4;
/** 最大段数。 */
maxSegments: number;
/**
* 创建一个 GlitterSettings
实例。
*/
constructor();
}
}
declare module laya.d3.core.glitter {
/**
* SplineCurvePosition
类用于通过顶点创建闪光插值。
*/
class SplineCurvePosition extends SplineCurvePositionVelocity {
/**
* 创建一个 SplineCurvePosition
实例。
*/
constructor();
/**
* 初始化插值所需信息。
* @param lastPosition0 顶点0的上次位置。
* @param position0 顶点0的位置。
* @param lastPosition1 顶点1的上次位置。
* @param position1 顶点1的位置。
*/
Init(lastPosition0: laya.d3.math.Vector3, position0: laya.d3.math.Vector3, lastPosition1: laya.d3.math.Vector3, position1: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core.glitter {
/**
* SplineCurvePositionVelocity
类用于通过顶点和速度创建闪光插值。
*/
class SplineCurvePositionVelocity {
protected _tempVector30: laya.d3.math.Vector3;
protected _tempVector31: laya.d3.math.Vector3;
protected _tempVector32: laya.d3.math.Vector3;
protected _a: laya.d3.math.Vector3;
protected _b: laya.d3.math.Vector3;
protected _c: laya.d3.math.Vector3;
protected _d: laya.d3.math.Vector3;
/**
* 创建一个 SplineCurvePositionVelocity
实例。
*/
constructor();
/**
* 初始化插值所需信息。
* @param position0 顶点0的位置。
* @param velocity0 顶点0的速度。
* @param position1 顶点1的位置。
* @param velocity1 顶点1的速度。
*/
Init(position0: laya.d3.math.Vector3, velocity0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3, velocity1: laya.d3.math.Vector3): void;
/**
* 初始化插值所需信息。
* @param t 插值比例
* @param out 输出结果
*/
Slerp(t: number, out: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.core {
/**
* ...
* @author ...
*/
class GlitterRender extends laya.d3.core.render.BaseRender {
constructor(owner: laya.d3.core.glitter.Glitter);
protected _calculateBoundingBox(): void;
protected _calculateBoundingSphere(): void;
}
}
declare module laya.d3.core {
/**
* HeightMap
类用于实现高度图数据。
*/
class HeightMap {
private static _tempRay;
/**
* 从网格精灵生成高度图。
* @param meshSprite 网格精灵。
* @param width 高度图宽度。
* @param height 高度图高度。
* @param outCellSize 输出 单元尺寸。
*/
static creatFromMesh(mesh: laya.d3.resource.models.Mesh, width: number, height: number, outCellSize: laya.d3.math.Vector2): HeightMap;
/**
* 从图片生成高度图。
* @param image 图片。
* @param maxHeight 最小高度。
* @param maxHeight 最大高度。
*/
static createFromImage(texture: any, minHeight: number, maxHeight: number): HeightMap;
/**
* 获取宽度。
* @return value 宽度。
*/
width: number;
/**
* 获取高度。
* @return value 高度。
*/
height: number;
/**
* 最大高度。
* @return value 最大高度。
*/
maxHeight: number;
/**
* 最大高度。
* @return value 最大高度。
*/
minHeight: number;
/**
* 创建一个 HeightMap
实例。
* @param width 宽度。
* @param height 高度。
* @param minHeight 最大高度。
* @param maxHeight 最大高度。
*/
constructor(width: number, height: number, minHeight: number, maxHeight: number);
/**
* 获取高度。
* @param row 列数。
* @param col 行数。
* @return 高度。
*/
getHeight(row: number, col: number): number;
}
}
declare module laya.d3.core {
/**
* Layer
类用于实现遮罩层。
*/
class Layer {
protected static _uniqueIDCounter: number;
protected static _layerList: ArrayLayer
实例。
*/
constructor();
}
}
declare module laya.d3.core.light {
/**
* DirectionLight
类用于创建平行光。
*/
class DirectionLight extends LightSprite {
/**
* 创建一个 DirectionLight
实例。
*/
constructor();
/**
* 获取平行光的方向。
* @return 平行光的方向。
*/
/**
* 设置平行光的方向。
* @param value 平行光的方向。
*/
direction: laya.d3.math.Vector3;
/**
* 获取平行光的类型。
* @return 平行光的类型。
*/
lightType: number;
/**
* 更新平行光相关渲染状态参数。
* @param state 渲染状态参数。
*/
updateToWorldState(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.light {
/**
* LightSprite
类用于创建灯光的父类。
*/
class LightSprite extends laya.d3.core.Sprite3D {
/** 定义平行光类型的标记。*/
static TYPE_DIRECTIONLIGHT: number;
/** 定义点光类型的标记。*/
static TYPE_POINTLIGHT: number;
/** 定义聚光类型的标记。*/
static TYPE_SPOTLIGHT: number;
protected _diffuseColor: laya.d3.math.Vector3;
protected _ambientColor: laya.d3.math.Vector3;
protected _specularColor: laya.d3.math.Vector3;
protected _reflectColor: laya.d3.math.Vector3;
/**
* 创建一个 LightSprite
实例。
*/
constructor();
/**
* 获取灯光的漫反射颜色。
* @return 灯光的漫反射颜色。
*/
/**
* 设置灯光的漫反射颜色。
* @param value 灯光的漫反射颜色。
*/
diffuseColor: laya.d3.math.Vector3;
/**
* 获取灯光的环境光颜色。
* @return 灯光的环境光颜色。
*/
/**
* 设置灯光的环境光颜色。
* @param value 灯光的环境光颜色。
*/
ambientColor: laya.d3.math.Vector3;
/**
* 获取灯光的高光颜色。
* @return 灯光的高光颜色。
*/
/**
* 设置灯光的高光颜色。
* @param value 灯光的高光颜色。
*/
specularColor: laya.d3.math.Vector3;
/**
* 获取灯光的反射颜色。
* @return 灯光的反射颜色。
*/
/**
* 设置灯光的反射颜色。
* @param value 灯光的反射颜色。
*/
reflectColor: laya.d3.math.Vector3;
/**
* 获取灯光的类型。
* @return 灯光的类型。
*/
lightType: number;
/**
* 更新灯光相关渲染状态参数。
* @param state 渲染状态参数。
*/
updateToWorldState(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.light {
/**
* PointLight
类用于创建点光。
*/
class PointLight extends LightSprite {
/**
* 创建一个 PointLight
实例。
*/
constructor();
/**
* 获取点光的范围。
* @return 点光的范围。
*/
/**
* 设置点光的范围。
* @param value 点光的范围。
*/
range: number;
/**
* 获取点光的衰减。
* @return 点光的衰减。
*/
/**
* 设置点光的衰减。
* @param value 点光的衰减。
*/
attenuation: laya.d3.math.Vector3;
/**
* 获取点光的类型。
* @return 点光的类型。
*/
lightType: number;
/**
* 更新点光相关渲染状态参数。
* @param state 渲染状态参数。
*/
updateToWorldState(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.light {
/**
* SpotLight
类用于创建聚光。
*/
class SpotLight extends LightSprite {
/**
* 创建一个 SpotLight
实例。
*/
constructor();
/**
* 获取聚光的方向。
* @return 聚光的方向。
*/
/**
* 设置聚光的方向。
* @param value 聚光的方向。
*/
direction: laya.d3.math.Vector3;
/**
* 获取聚光的衰减。
* @return 聚光的衰减。
*/
/**
* 设置聚光的衰减。
* @param value 聚光的衰减。
*/
attenuation: laya.d3.math.Vector3;
/**
* 获取聚光的聚光值。
* @return 聚光的聚光值。
*/
/**
* 设置聚光的聚光值。
* @param value 聚光的聚光值。
*/
spot: number;
/**
* 获取聚光的范围。
* @return 聚光的范围值。
*/
/**
* 设置聚光的范围。
* @param value 聚光的范围值。
*/
range: number;
/**
* 获取聚光的类型。
* @return 聚光的类型。
*/
lightType: number;
/**
* 更新聚光相关渲染状态参数。
* @param state 渲染状态参数。
*/
updateToWorldState(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.material {
/**
* BaseMaterial
类用于创建材质,抽象类,不允许实例。
*/
class BaseMaterial extends laya.events.EventDispatcher {
private static _uniqueIDCounter;
/**渲染状态_不透明。*/
static RENDERMODE_OPAQUE: number;
/**渲染状态_不透明_双面。*/
static RENDERMODE_OPAQUEDOUBLEFACE: number;
/**渲染状态_透明测试。*/
static RENDERMODE_CUTOUT: number;
/**渲染状态_透明测试_双面。*/
static RENDERMODE_CUTOUTDOUBLEFACE: number;
/**渲染状态_透明混合。*/
static RENDERMODE_TRANSPARENT: number;
/**渲染状态_透明混合_双面。*/
static RENDERMODE_TRANSPARENTDOUBLEFACE: number;
/**渲染状态_加色法混合。*/
static RENDERMODE_ADDTIVE: number;
/**渲染状态_加色法混合_双面。*/
static RENDERMODE_ADDTIVEDOUBLEFACE: number;
/**渲染状态_只读深度_透明混合。*/
static RENDERMODE_DEPTHREAD_TRANSPARENT: number;
/**渲染状态_只读深度_透明混合_双面。*/
static RENDERMODE_DEPTHREAD_TRANSPARENTDOUBLEFACE: number;
/**渲染状态_只读深度_加色法混合。*/
static RENDERMODE_DEPTHREAD_ADDTIVE: number;
/**渲染状态_只读深度_加色法混合_双面。*/
static RENDERMODE_DEPTHREAD_ADDTIVEDOUBLEFACE: number;
/**渲染状态_无深度_透明混合。*/
static RENDERMODE_NONDEPTH_TRANSPARENT: number;
/**渲染状态_无深度_透明混合_双面。*/
static RENDERMODE_NONDEPTH_TRANSPARENTDOUBLEFACE: number;
/**渲染状态_无深度_加色法混合。*/
static RENDERMODE_NONDEPTH_ADDTIVE: number;
/**渲染状态_无深度_加色法混合_双面。*/
static RENDERMODE_NONDEPTH_ADDTIVEDOUBLEFACE: number;
static createFromFile(url: string, out: BaseMaterial): void;
_isInstance: boolean;
/**材质名字。*/
name: string;
shader: laya.webgl.shader.Shader;
/**
* 获取唯一标识ID(通常用于优化或识别)。
* @return 唯一标识ID
*/
id: number;
/**
* 获取是否已加载完成。
* @return 是否已加载完成
*/
loaded: boolean;
/**
* 获取所属渲染队列。
* @return 渲染队列。
*/
renderQueue: number;
/**
* 获取渲染状态。
* @return 渲染状态。
*/
/**
* 设置渲染模式。
* @return 渲染模式。
*/
renderMode: number;
/**
* 创建一个 BaseMaterial
实例。
*/
constructor();
protected _addShaderDefine(value: number): void;
protected _removeShaderDefine(value: number): void;
protected _addDisableShaderDefine(value: number): void;
protected _removeDisableShaderDefine(value: number): void;
protected _setMatrix4x4(matrix4x4Index: number, shaderName: string, matrix4x4: laya.d3.math.Matrix4x4): void;
protected _getMatrix4x4(matrix4x4Index: number): any;
protected _setNumber(numberIndex: number, shaderName: string, number: number): void;
protected _getNumber(numberIndex: number): any;
protected _setColor(colorIndex: number, shaderName: string, color: any): void;
protected _getColor(colorIndex: number): any;
protected _setTexture(texture: laya.d3.resource.BaseTexture, textureIndex: number, shaderName: string): void;
protected _getTexture(textureIndex: number): laya.d3.resource.BaseTexture;
/**
* 上传材质。
* @param state 相关渲染状态。
* @param bufferUsageShader Buffer相关绑定。
* @param shader 着色器。
* @return 是否成功。
*/
_upload(state: laya.d3.core.render.RenderState, vertexDeclaration: laya.d3.graphics.VertexDeclaration, bufferUsageShader: any): void;
/**
* 设置使用Shader名字。
* @param name 名称。
*/
setShaderName(name: string): void;
_setLoopShaderParams(state: laya.d3.core.render.RenderState, projectionView: laya.d3.math.Matrix4x4, worldMatrix: laya.d3.math.Matrix4x4, mesh: laya.d3.core.render.IRenderable, material: BaseMaterial): void;
/**
* 复制材质
* @param dec 目标材质
*/
copy(dec: BaseMaterial): BaseMaterial;
}
}
declare module laya.d3.core.material {
/**
* ...
* @author ...
*/
class GlitterMaterial extends BaseMaterial {
/** 默认材质,禁止修改*/
static defaultMaterial: GlitterMaterial;
/**
* 获取漫反射贴图。
* @return 漫反射贴图。
*/
/**
* 设置漫反射贴图。
* @param value 漫反射贴图。
*/
diffuseTexture: laya.d3.resource.BaseTexture;
constructor();
_setLoopShaderParams(state: laya.d3.core.render.RenderState, projectionView: laya.d3.math.Matrix4x4, worldMatrix: laya.d3.math.Matrix4x4, mesh: laya.d3.core.render.IRenderable, material: BaseMaterial): void;
}
}
declare module laya.d3.core.material {
/**
* ...
* @author ...
*/
class ParticleMaterial extends BaseMaterial {
/** 默认材质,禁止修改*/
static defaultMaterial: ParticleMaterial;
/**
* 获取漫反射贴图。
* @return 漫反射贴图。
*/
/**
* 设置漫反射贴图。
* @param value 漫反射贴图。
*/
diffuseTexture: laya.d3.resource.BaseTexture;
constructor();
_setLoopShaderParams(state: laya.d3.core.render.RenderState, projectionView: laya.d3.math.Matrix4x4, worldMatrix: laya.d3.math.Matrix4x4, mesh: laya.d3.core.render.IRenderable, material: BaseMaterial): void;
}
}
declare module laya.d3.core.material {
/**
* ...
* @author ...
*/
class StandardMaterial extends BaseMaterial {
private static _tempMatrix4x40;
/** 默认材质,禁止修改*/
static defaultMaterial: StandardMaterial;
private static AMBIENTCOLORVALUE;
private static DIFFUSECOLORVALUE;
private static SPECULARCOLORVALUE;
private static REFLECTCOLORVALUE;
private static ALBEDO;
protected _transformUV: laya.d3.core.TransformUV;
/**
* 设置环境光颜色。
* @param value 环境光颜色。
*/
ambientColor: laya.d3.math.Vector3;
/**
* 设置漫反射光颜色。
* @param value 漫反射光颜色。
*/
diffuseColor: laya.d3.math.Vector3;
/**
* 设置高光颜色。
* @param value 高光颜色。
*/
specularColor: laya.d3.math.Vector4;
/**
* 设置反射颜色。
* @param value 反射颜色。
*/
reflectColor: laya.d3.math.Vector3;
/**
* 设置反射率。
* @param value 反射率。
*/
albedo: laya.d3.math.Vector4;
/**
* 获取透明测试模式裁剪值。
* @return 透明测试模式裁剪值。
*/
/**
* 设置透明测试模式裁剪值。
* @param value 透明测试模式裁剪值。
*/
alphaTestValue: number;
/**
* 获取漫反射贴图。
* @return 漫反射贴图。
*/
/**
* 设置漫反射贴图。
* @param value 漫反射贴图。
*/
diffuseTexture: laya.d3.resource.BaseTexture;
/**
* 获取法线贴图。
* @return 法线贴图。
*/
/**
* 设置法线贴图。
* @param value 法线贴图。
*/
normalTexture: laya.d3.resource.BaseTexture;
/**
* 获取高光贴图。
* @return 高光贴图。
*/
/**
* 设置高光贴图。
* @param value 高光贴图。
*/
specularTexture: laya.d3.resource.BaseTexture;
/**
* 获取放射贴图。
* @return 放射贴图。
*/
/**
* 设置放射贴图。
* @param value 放射贴图。
*/
emissiveTexture: laya.d3.resource.BaseTexture;
/**
* 获取环境贴图。
* @return 环境贴图。
*/
/**
* 设置环境贴图。
* @param value 环境贴图。
*/
ambientTexture: laya.d3.resource.BaseTexture;
/**
* 获取反射贴图。
* @return 反射贴图。
*/
/**
* 设置反射贴图。
* @param value 反射贴图。
*/
reflectTexture: laya.d3.resource.BaseTexture;
/**
* 获取UV变换。
* @return UV变换。
*/
/**
* 设置UV变换。
* @param value UV变换。
*/
transformUV: laya.d3.core.TransformUV;
constructor();
/**
* 禁用灯光。
*/
disableLight(): void;
/**
* 禁用雾化。
*/
disableFog(): void;
_setLoopShaderParams(state: laya.d3.core.render.RenderState, projectionView: laya.d3.math.Matrix4x4, worldMatrix: laya.d3.math.Matrix4x4, mesh: laya.d3.core.render.IRenderable, material: BaseMaterial): void;
copy(dec: BaseMaterial): BaseMaterial;
}
}
declare module laya.d3.core {
/**
* MeshFilter
类用于创建网格过滤器。
*/
class MeshFilter extends laya.events.EventDispatcher {
/**
* 获取共享网格。
* @return 共享网格。
*/
/**
* 设置共享网格。
* @return value 共享网格。
*/
sharedMesh: laya.d3.resource.models.BaseMesh;
/**
* 创建一个新的 MeshFilter
实例。
* @param mesh 网格数据。
*/
constructor(owner: MeshSprite3D);
}
}
declare module laya.d3.core {
/**
* MeshRender
类用于网格渲染器。
*/
class MeshRender extends laya.d3.core.render.BaseRender {
/** 是否产生阴影。 */
castShadow: boolean;
/** 是否接收阴影。 */
receiveShadow: boolean;
/**
* 创建一个新的 MeshRender
实例。
*/
constructor(owner: MeshSprite3D);
protected _calculateBoundingSphere(): void;
protected _calculateBoundingBox(): void;
/**
* @private
* MeshSprite3D
类用于创建网格。
*/
class MeshSprite3D extends Sprite3D {
/**
* 获取网格过滤器。
* @return 网格过滤器。
*/
meshFilter: MeshFilter;
/**
* 获取网格渲染器。
* @return 网格渲染器。
*/
meshRender: MeshRender;
/**
* 创建一个 MeshSprite3D
实例。
* @param mesh 网格,同时会加载网格所用默认材质。
* @param name 名字。
*/
constructor(mesh: laya.d3.resource.models.BaseMesh, name?: string);
protected _clearSelfRenderObjects(): void;
protected _addSelfRenderObjects(): void;
/**
* @private
*/
_update(state: laya.d3.core.render.RenderState): void;
dispose(): void;
}
}
declare module laya.d3.core {
/**
* TerrainMeshSprite3D
类用于创建网格。
*/
class MeshTerrainSprite3D extends MeshSprite3D {
private static _tempVector3;
private static _tempMatrix4x4;
/**
* 从网格创建一个TerrainMeshSprite3D实例和其高度图属性。
* @param mesh 网格。
* @param heightMapWidth 高度图宽度。
* @param heightMapHeight 高度图高度。
* @param name 名字。
*/
static createFromMesh(mesh: laya.d3.resource.models.Mesh, heightMapWidth: number, heightMapHeight: number, name?: string): MeshTerrainSprite3D;
/**
* 从网格创建一个TerrainMeshSprite3D实例、图片读取高度图属性。
* @param mesh 网格。
* @param image 高度图。
* @param name 名字。
*/
static createFromMeshAndHeightMap(mesh: laya.d3.resource.models.Mesh, texture: laya.d3.resource.Texture2D, minHeight: number, maxHeight: number, name?: string): MeshTerrainSprite3D;
/**
* 获取地形X轴最小位置。
* @return 地形X轴最小位置。
*/
minX: number;
/**
* 获取地形Z轴最小位置。
* @return 地形X轴最小位置。
*/
minZ: number;
/**
* 获取地形X轴长度。
* @return 地形X轴长度。
*/
width: number;
/**
* 获取地形Z轴长度。
* @return 地形Z轴长度。
*/
depth: number;
/**
* 创建一个 TerrainMeshSprite3D
实例。
* @param mesh 网格。
* @param heightMap 高度图。
* @param name 名字。
*/
constructor(mesh: laya.d3.resource.models.Mesh, heightMap: HeightMap, name?: string);
/**
* @private
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* 获取地形高度。
* @param x X轴坐标。
* @param z Z轴坐标。
*/
getHeight(x: number, z: number): number;
}
}
declare module laya.d3.core.particle {
/**
* EmitterBox
类用于盒发射器。
*/
class EmitterBox extends laya.particle.emitter.EmitterBase {
protected _settings: laya.particle.ParticleSetting;
protected _particle3D: Particle3D;
protected _resultPosition: laya.d3.math.Vector3;
protected _resultVelocity: laya.d3.math.Vector3;
/**发射器中心位置。*/
centerPosition: laya.d3.math.Vector3;
/**发射器尺寸。*/
size: laya.d3.math.Vector3;
/**发射器速度。*/
velocity: laya.d3.math.Vector3;
/**发射器速度随机值。*/
velocityAddVariance: laya.d3.math.Vector3;
/**
* 创建一个 EmitterBox
实例。
* @param particle3D 粒子。
*/
constructor(particle3D: Particle3D);
protected _randomPositionOnBox(): laya.d3.math.Vector3;
protected _randomVelocityOnBox(): laya.d3.math.Vector3;
/**
* 盒发射器发射函数。
*/
emit(): void;
/**
* 更新盒粒子发射器。
* @param state 渲染相关状态参数。
*/
update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.particle {
/**
* EmitterPoint
类用于点发射器。
*/
class EmitterPoint extends laya.particle.emitter.EmitterBase {
protected _settings: laya.particle.ParticleSetting;
protected _particle3D: Particle3D;
protected _resultPosition: laya.d3.math.Vector3;
protected _resultVelocity: laya.d3.math.Vector3;
/**发射器位置。*/
position: laya.d3.math.Vector3;
/**发射器位置随机值。*/
positionVariance: laya.d3.math.Vector3;
/**发射器速度。*/
velocity: laya.d3.math.Vector3;
/**发射器速度随机值。*/
velocityAddVariance: laya.d3.math.Vector3;
/**
* 创建一个 EmitterPoint
实例。
* @param particle3D 粒子。
*/
constructor(particle3D: Particle3D);
protected _randomPositionOnPoint(): laya.d3.math.Vector3;
protected _randomVelocityOnPoint(): laya.d3.math.Vector3;
/**
* 点发射器发射函数。
*/
emit(): void;
/**
* 更新点粒子发射器。
* @param state 渲染相关状态参数。
*/
update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.particle {
/**
* EmitterRing
类用于环发射器。
*/
class EmitterRing extends laya.particle.emitter.EmitterBase {
protected _settings: laya.particle.ParticleSetting;
protected _particle3D: Particle3D;
protected _resultPosition: laya.d3.math.Vector3;
protected _resultVelocity: laya.d3.math.Vector3;
protected _direction: laya.d3.math.Vector3;
/**发射器中心位置。*/
centerPosition: laya.d3.math.Vector3;
/**发射器半径。*/
radius: number;
/**发射器速度。*/
velocity: number;
/**发射器速度随机值。*/
velocityAddVariance: number;
/**发射器up向量,0代表X轴,1代表Y轴,2代表Z轴。*/
up: number;
/**
* 创建一个 EmitterRing
实例。
* @param particle3D 粒子。
*/
constructor(particle3D: Particle3D);
protected _randomPointOnRing(): laya.d3.math.Vector3;
protected _randomVelocityOnRing(): laya.d3.math.Vector3;
/**
* 环发射器发射函数。
*/
emit(): void;
/**
* 更新环粒子发射器。
* @param state 渲染相关状态参数。
*/
update(elapsedTime: number): void;
}
}
declare module laya.d3.core.particle {
/**
* EmitterSphere
类用于球发射器。
*/
class EmitterSphere extends laya.particle.emitter.EmitterBase {
protected _settings: laya.particle.ParticleSetting;
protected _particle3D: Particle3D;
protected _reultPosition: laya.d3.math.Vector3;
protected _resultVelocity: laya.d3.math.Vector3;
protected _direction: laya.d3.math.Vector3;
/**发射器中心位置。*/
centerPosition: laya.d3.math.Vector3;
/**发射器半径。*/
radius: number;
/**发射器速度。*/
velocity: number;
/**发射器速度随机值。*/
velocityAddVariance: number;
/**
* 创建一个 EmitterSphere
实例。
* @param particle3D 粒子。
*/
constructor(particle3D: Particle3D);
protected _randomPositionOnSphere(): laya.d3.math.Vector3;
protected _randomVelocityOnSphere(): laya.d3.math.Vector3;
/**
* 球发射器发射函数。
*/
emit(): void;
/**
* 更新球粒子发射器。
* @param state 渲染相关状态参数。
*/
update(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.core.particle {
/**
* Particle3D
3D粒子。
*/
class Particle3D extends laya.d3.core.Sprite3D {
/**
* 获取粒子模板。
* @return 粒子模板。
*/
templet: laya.d3.resource.tempelet.ParticleTemplet3D;
/**
* 获取粒子渲染器。
* @return 粒子渲染器。
*/
particleRender: laya.d3.core.ParticleRender;
/**
* 创建一个 Particle3D
实例。
* @param settings value 粒子配置。
*/
constructor(setting: laya.particle.ParticleSetting);
protected _clearSelfRenderObjects(): void;
protected _addSelfRenderObjects(): void;
/**
* 更新粒子。
* @param state 渲染相关状态参数。
*/
_update(state: laya.d3.core.render.RenderState): void;
/**
* 添加粒子。
* @param position 粒子位置。
* @param velocity 粒子速度。
*/
addParticle(position: laya.d3.math.Vector3, velocity: laya.d3.math.Vector3): void;
dispose(): void;
}
}
declare module laya.d3.core {
/**
* ...
* @author ...
*/
class ParticleRender extends laya.d3.core.render.BaseRender {
constructor(owner: laya.d3.core.particle.Particle3D);
protected _calculateBoundingBox(): void;
protected _calculateBoundingSphere(): void;
}
}
declare module laya.d3.core {
/**
* @private
* PhasorSpriter3D
类用于创建矢量笔刷。
*/
class PhasorSpriter3D {
constructor();
line(startX: number, startY: number, startZ: number, startR: number, startG: number, startB: number, startA: number, endX: number, endY: number, endZ: number, endR: number, endG: number, endB: number, endA: number): PhasorSpriter3D;
circle(radius: number, numberOfPoints: number, r: number, g: number, b: number, a: number): PhasorSpriter3D;
plane(positionX: number, positionY: number, positionZ: number, width: number, height: number, r: number, g: number, b: number, a: number): PhasorSpriter3D;
box(positionX: number, positionY: number, positionZ: number, width: number, height: number, depth: number, r: number, g: number, b: number, a: number): PhasorSpriter3D;
cone(radius: number, length: number, Slices: number, r: number, g: number, b: number, a: number): PhasorSpriter3D;
boundingBoxLine(minX: number, minY: number, minZ: number, maxX: number, maxY: number, maxZ: number, r: number, g: number, b: number, a: number): PhasorSpriter3D;
begin(primitive: number, wvpMatrix: laya.d3.math.Matrix4x4, renState: laya.d3.core.render.RenderState): PhasorSpriter3D;
end(): PhasorSpriter3D;
protected getShader(state: laya.d3.core.render.RenderState): laya.webgl.shader.Shader;
}
}
declare module laya.d3.core.render {
/**
* Render
类用于渲染器的父类,抽象类不允许示例。
*/
class BaseRender extends laya.events.EventDispatcher implements laya.resource.IDispose {
protected _boundingSphereNeedChange: boolean;
protected _boundingBoxNeedChange: boolean;
protected _boundingSphere: laya.d3.math.BoundSphere;
protected _boundingBox: laya.d3.math.BoundBox;
/**
* 获取是否可用。
* @return 是否可用。
*/
/**
* 设置是否可用。
* @param value 是否可用。
*/
enable: boolean;
/**
* 获取渲染物体。
* @return 渲染物体。
*/
renderCullingObject: laya.d3.graphics.RenderObject;
/**
* 返回第一个实例材质,第一次使用会拷贝实例对象。
* @return 第一个实例材质。
*/
/**
* 设置第一个实例材质。
* @param value 第一个实例材质。
*/
material: laya.d3.core.material.BaseMaterial;
/**
* 获取潜拷贝实例材质列表,第一次使用会拷贝实例对象。
* @return 浅拷贝实例材质列表。
*/
/**
* 设置实例材质列表。
* @param value 实例材质列表。
*/
materials: ArrayIRender
接口用于实现3D对象的渲染相关功能。
*/
interface IRenderable {
}
}
declare module laya.d3.core.render {
/**
* IUpdate
接口用于实现3D对象的更新相关功能。
*/
interface IUpdate {
}
}
declare module laya.d3.core.render {
/**
* RenderConfig
类用于实现渲染配置。
*/
class RenderConfig {
/**是否进行深度测试。*/
depthTest: boolean;
/**深度遮罩。*/
depthMask: number;
/**是否透明混合。*/
blend: boolean;
/**透明混合源混值。*/
sFactor: number;
/**透明混合目标值。*/
dFactor: number;
/**是否单面渲染。*/
cullFace: boolean;
/**渲染顺序。*/
frontFace: number;
/**
* 创建一个 RenderConfig
实例。
*/
constructor();
}
}
declare module laya.d3.core.render {
/**
* @private
* RenderElement
类用于实现渲染物体。
*/
class RenderElement {
private static _tempVector30;
private static _tempVector31;
private static _tempQuaternion0;
private static _tempMatrix4x40;
private static _tempMatrix4x41;
_type: number;
_mainSortID: number;
_renderObject: laya.d3.graphics.RenderObject;
_sprite3D: laya.d3.core.Sprite3D;
_material: laya.d3.core.material.BaseMaterial;
_staticBatch: laya.d3.graphics.StaticBatch;
_batchIndexStart: number;
_batchIndexEnd: number;
renderObj: IRenderable;
/**
* 创建一个 RenderElement
实例。
*/
constructor();
/**
* @private
*/
getStaticBatchBakedVertexs(index: number): Float32Array;
/**
* @private
*/
getDynamicBatchBakedVertexs(index: number): Float32Array;
/**
* @private
*/
getBakedIndices(): any;
}
}
declare module laya.d3.core.render {
/**
* @private
* RenderQuene
类用于实现渲染队列。
*/
class RenderQueue {
private static _uniqueIDCounter;
/** 定义非透明渲染队列标记。*/
static OPAQUE: number;
/** 定义非透明、双面渲染队列标记。*/
static OPAQUE_DOUBLEFACE: number;
/** 透明混合渲染队列标记。*/
static ALPHA_BLEND: number;
/** 透明混合、双面渲染队列标记。*/
static ALPHA_BLEND_DOUBLEFACE: number;
/** 透明加色混合。*/
static ALPHA_ADDTIVE_BLEND: number;
/** 透明加色混合、双面渲染队列标记。*/
static ALPHA_ADDTIVE_BLEND_DOUBLEFACE: number;
/** 定义深度只读、透明混合渲染队列标记。*/
static DEPTHREAD_ALPHA_BLEND: number;
/** 定义深度只读、透明混合、双面渲染队列标记。*/
static DEPTHREAD_ALPHA_BLEND_DOUBLEFACE: number;
/** 定义深度只读、透明加色混合。*/
static DEPTHREAD_ALPHA_ADDTIVE_BLEND: number;
/** 定义深度只读、透明加色混合、双面渲染队列标记。*/
static DEPTHREAD_ALPHA_ADDTIVE_BLEND_DOUBLEFACE: number;
/** 定义无深度测试、透明混合渲染队列标记。*/
static NONDEPTH_ALPHA_BLEND: number;
/** 定义无深度测试、透明混合、双面渲染队列标记。*/
static NONDEPTH_ALPHA_BLEND_DOUBLEFACE: number;
/** 定义无深度测试、透明加色混合。*/
static NONDEPTH_ALPHA_ADDTIVE_BLEND: number;
/** 定义无深度测试、透明加色混合、双面渲染队列标记。*/
static NONDEPTH_ALPHA_ADDTIVE_BLEND_DOUBLEFACE: number;
private static _cameraPosition;
/**
* 获取唯一标识ID(通常用于优化或识别)。
*/
id: number;
/**
* 创建一个 RenderQuene
实例。
* @param renderConfig 渲染配置。
*/
constructor(renderConfig: RenderConfig, scene: laya.d3.core.scene.BaseScene);
protected _preRenderUpdateComponents(sprite3D: laya.d3.core.Sprite3D, state: RenderState): void;
protected _postRenderUpdateComponents(sprite3D: laya.d3.core.Sprite3D, state: RenderState): void;
/**
* @private
*/
_sortAlpha(cameraPos: laya.d3.math.Vector3): void;
/**
* @private
* 应用渲染状态到显卡。
* @param gl WebGL上下文。
*/
_setState(gl: laya.webgl.WebGLContext, state: RenderState): void;
/**
* @private
* 准备渲染队列。
* @param state 渲染状态。
*/
_preRender(state: RenderState): void;
/**
* @private
* 渲染队列。
* @param state 渲染状态。
*/
_render(state: RenderState): void;
staticBatch: laya.d3.graphics.StaticBatch;
/**
* 清空队列中的渲染物体。
*/
_clearRenderElements(): void;
/**
* 添加渲染物体。
* @param renderObj 渲染物体。
*/
_addRenderElement(renderElement: RenderElement): void;
/**
* 添加静态批处理。
* @param renderObj 静态批处理。
*/
_addStaticBatch(staticBatch: laya.d3.graphics.StaticBatch): void;
/**
* 添加动态批处理。
* @param renderObj 动态批处理。
*/
_addDynamicBatchElement(dynamicBatchElement: RenderElement): void;
}
}
declare module laya.d3.core.render {
/**
* RenderState
类用于实现渲染状态。
*/
class RenderState {
/** 定义顶点渲染模式标记。*/
static VERTEXSHADERING: number;
/** 定义像素渲染模式标记。*/
static PIXELSHADERING: number;
/**渲染区宽度。*/
static clientWidth: number;
/**渲染区高度。*/
static clientHeight: number;
/**距上一帧间隔时间。*/
elapsedTime: number;
/**循环次数。*/
loopCount: number;
/**WebGL上下文。*/
context: laya.webgl.WebGLContext;
/**当前场景。*/
scene: laya.d3.core.scene.BaseScene;
/**当前渲染3D精灵。*/
owner: laya.d3.core.Sprite3D;
/**当前渲染物体。*/
renderElement: RenderElement;
_staticBatch: laya.d3.graphics.StaticBatch;
_batchIndexStart: number;
_batchIndexEnd: number;
/**当前摄像机。*/
camera: laya.d3.core.BaseCamera;
/**当前视图矩阵。*/
viewMatrix: laya.d3.math.Matrix4x4;
/**当前投影矩阵。*/
projectionMatrix: laya.d3.math.Matrix4x4;
/**当前投影视图矩阵。*/
projectionViewMatrix: laya.d3.math.Matrix4x4;
cameraBoundingFrustum: laya.d3.math.BoundFrustum;
/**当前视口。*/
viewport: laya.d3.math.Viewport;
/**当前世界ShaderValue。*/
worldShaderValue: laya.webgl.utils.ValusArray;
/**当前ShaderValue。*/
shaderValue: laya.webgl.utils.ValusArray;
/**当前ShaderDefs。*/
shaderDefs: laya.d3.shader.ShaderDefines3D;
/**
* 创建一个 RenderState
实例。
*/
constructor();
/**
* 重置。
*/
reset(): void;
}
}
declare module laya.d3.core.scene {
/**
* BaseScene
类用于实现场景的父类。
*/
class BaseScene extends laya.display.Sprite implements laya.webgl.submit.ISubmit {
protected _invertYProjectionMatrix: laya.d3.math.Matrix4x4;
protected _invertYProjectionViewMatrix: laya.d3.math.Matrix4x4;
protected _invertYScaleMatrix: laya.d3.math.Matrix4x4;
protected _isInStage: boolean;
protected _boundFrustum: laya.d3.math.BoundFrustum;
protected _renderState: laya.d3.core.render.RenderState;
protected _lights: ArrayBaseScene
实例。
*/
constructor();
/**
* @private
*/
_changeSelfAndChildrenInStage(isInStage: boolean): void;
/**
* 清理自身和子节点渲染物体,重写此函数。
*/
_clearSelfAndChildrenRenderObjects(): void;
/**
* 添加自身和子节点渲染物体,重写此函数。
*/
_addSelfAndChildrenRenderObjects(): void;
protected _prepareScene(gl: laya.webgl.WebGLContext, camera: laya.d3.core.BaseCamera, state: laya.d3.core.render.RenderState): void;
protected _updateScene(state: laya.d3.core.render.RenderState): void;
protected _updateChilds(state: laya.d3.core.render.RenderState): void;
protected _preRenderScene(gl: laya.webgl.WebGLContext, state: laya.d3.core.render.RenderState): void;
protected _clear(gl: laya.webgl.WebGLContext, state: laya.d3.core.render.RenderState): void;
protected _renderScene(gl: laya.webgl.WebGLContext, state: laya.d3.core.render.RenderState): void;
protected _set3DRenderConfig(gl: laya.webgl.WebGLContext): void;
protected _set2DRenderConfig(gl: laya.webgl.WebGLContext): void;
/**
* @private
*/
_addLight(light: laya.d3.core.light.LightSprite): void;
/**
* @private
*/
_removeLight(light: laya.d3.core.light.LightSprite): void;
addChildAt(node: laya.display.Node, index: number): laya.display.Node;
addChild(node: laya.display.Node): laya.display.Node;
addFrustumCullingObject(frustumCullingObject: laya.d3.graphics.RenderObject): void;
removeFrustumCullingObject(frustumCullingObject: laya.d3.graphics.RenderObject): void;
/**
* 获得某个渲染队列。
* @param index 渲染队列索引。
* @return 渲染队列。
*/
getRenderQueue(index: number): laya.d3.core.render.RenderQueue;
/**
* 添加渲染队列。
* @param renderConfig 渲染队列配置文件。
*/
addRenderQuene(renderConfig: laya.d3.core.render.RenderConfig): void;
/**
* 更新前处理,可重写此函数。
* @param state 渲染相关状态。
*/
beforeUpate(state: laya.d3.core.render.RenderState): void;
/**
* 更新后处理,可重写此函数。
* @param state 渲染相关状态。
*/
lateUpate(state: laya.d3.core.render.RenderState): void;
/**
* 渲染前处理,可重写此函数。
* @param state 渲染相关状态。
*/
beforeRender(state: laya.d3.core.render.RenderState): void;
/**
* 渲染后处理,可重写此函数。
* @param state 渲染相关状态。
*/
lateRender(state: laya.d3.core.render.RenderState): void;
/**
* @private
*/
render(context: laya.renders.RenderContext, x: number, y: number): void;
/**
* @private
*/
renderSubmit(): number;
/**
* @private
*/
getRenderType(): number;
/**
* @private
*/
releaseRender(): void;
}
}
declare module laya.d3.core.scene {
/**
* Scene
类用于实现普通场景。
*/
class Scene extends BaseScene {
/**
* 创建一个 Scene
实例。
*/
constructor();
/**
* @private
*/
renderSubmit(): number;
}
}
declare module laya.d3.core.scene {
/**
* VRScene
类用于实现VR场景。
*/
class VRScene extends BaseScene {
/**
* 创建一个 VRScene
实例。
*/
constructor();
/**
* @private
*/
renderSubmit(): number;
}
}
declare module laya.d3.core {
/**
* Sprite3D
类用于实现3D精灵。
*/
class Sprite3D extends laya.display.Node implements laya.d3.core.render.IUpdate, laya.resource.IDispose {
protected static _uniqueIDCounter: number;
protected static _nameNumberCounter: number;
protected _isInStage: boolean;
protected _enable: boolean;
protected _layerMask: number;
protected _componentsMap: any;
protected _components: ArraySprite3D
实例。
*/
constructor(name?: string);
/**
* @private
*/
_changeSelfAndChildrenInStage(isInStage: boolean): void;
protected _clearSelfRenderObjects(): void;
protected _addSelfRenderObjects(): void;
/**
* 清理自身和子节点渲染物体,重写此函数。
*/
_clearSelfAndChildrenRenderObjects(): void;
/**
* 添加自身和子节点渲染物体,重写此函数。
*/
_addSelfAndChildrenRenderObjects(): void;
protected _updateComponents(state: laya.d3.core.render.RenderState): void;
protected _lateUpdateComponents(state: laya.d3.core.render.RenderState): void;
protected _updateChilds(state: laya.d3.core.render.RenderState): void;
/**
* 排序函数。
* @param state 渲染相关状态。
*/
_getSortID(renderElement: laya.d3.core.render.IRenderable, material: laya.d3.core.material.BaseMaterial): number;
/**
* 更新
* @param state 渲染相关状态
*/
_update(state: laya.d3.core.render.RenderState): void;
addChildAt(node: laya.display.Node, index: number): laya.display.Node;
addChild(node: laya.display.Node): laya.display.Node;
/**
* 添加指定类型组件。
* @param type 组件类型。
* @return 组件。
*/
addComponent(type: any): laya.d3.component.Component3D;
/**
* 获得指定类型组件。
* @param type 组件类型。
* @return 组件。
*/
getComponentByType(type: any): laya.d3.component.Component3D;
/**
* 获得指定类型组件。
* @param type 组件类型。
* @return 组件。
*/
getComponentByIndex(index: number): laya.d3.component.Component3D;
/**
* 移除指定类型组件。
* @param type 组件类型。
*/
removeComponent(type: string): void;
/**
* 移除全部组件。
*/
removeAllComponent(): void;
/**
* 加载场景文件。
* @param url 地址。
*/
loadHierarchy(url: string): void;
dispose(): void;
}
}
declare module laya.d3.core {
/**
* Transform3D
类用于实现3D变换。
*/
class Transform3D extends laya.events.EventDispatcher {
protected _tempMatrix0: laya.d3.math.Matrix4x4;
protected _tempQuaternion0: laya.d3.math.Quaternion;
protected _tempVector30: laya.d3.math.Vector3;
protected _localPosition: laya.d3.math.Vector3;
protected _localRotation: laya.d3.math.Quaternion;
protected _localScale: laya.d3.math.Vector3;
protected _localMatrix: laya.d3.math.Matrix4x4;
protected _position: laya.d3.math.Vector3;
protected _rotation: laya.d3.math.Quaternion;
protected _scale: laya.d3.math.Vector3;
protected _worldMatrix: laya.d3.math.Matrix4x4;
protected _owner: Sprite3D;
protected _forward: laya.d3.math.Vector3;
protected _up: laya.d3.math.Vector3;
protected _right: laya.d3.math.Vector3;
protected _preWorldTransformModifyID: number;
protected _localUpdate: boolean;
protected _worldUpdate: boolean;
protected _parent: Transform3D;
/**
* 获取世界矩阵是否需要更新。
* @return 世界矩阵是否需要更新。
*/
worldNeedUpdate: boolean;
/**
* 获取局部矩阵。
* @return 局部矩阵。
*/
/**
* 设置局部矩阵。
* @param value 局部矩阵。
*/
localMatrix: laya.d3.math.Matrix4x4;
/**
* 获取世界矩阵。
* @return 世界矩阵。
*/
/**
* 设置世界矩阵。
* @param value 世界矩阵。
*/
worldMatrix: laya.d3.math.Matrix4x4;
/**
* 获取局部位置。
* @return 局部位置。
*/
/**
* 设置局部位置。
* @param value 局部位置。
*/
localPosition: laya.d3.math.Vector3;
/**
* 获取局部旋转。
* @return 局部旋转。
*/
/**
* 设置局部旋转。
* @param value 局部旋转。
*/
localRotation: laya.d3.math.Quaternion;
/**
* 获取局部缩放。
* @return 局部缩放。
*/
/**
* 设置局部缩放。
* @param value 局部缩放。
*/
localScale: laya.d3.math.Vector3;
/**
* 设置局部空间的旋转角度。
* @param value 欧拉角的旋转值,顺序为x、y、z。
*/
localRotationEuler: laya.d3.math.Vector3;
/**
* 获取世界位置。
* @return 世界位置。
*/
/**
* 设置世界位置。
* @param value 世界位置。
*/
position: laya.d3.math.Vector3;
/**
* 获取世界旋转。
* @return 世界旋转。
*/
/**
* 设置世界旋转。
* @param value 世界旋转。
*/
rotation: laya.d3.math.Quaternion;
/**
* 获取世界缩放。
* @return 世界缩放。
*/
scale: laya.d3.math.Vector3;
/**
* 设置局部空间的旋转角度。
* @param 欧拉角的旋转值,顺序为x、y、z。
*/
rotationEuler: laya.d3.math.Vector3;
/**
* 获取向前方向。
* @return 向前方向。
*/
forward: laya.d3.math.Vector3;
/**
* 获取向上方向。
* @return 向上方向。
*/
up: laya.d3.math.Vector3;
/**
* 获取向右方向。
* @return 向右方向。
*/
right: laya.d3.math.Vector3;
/**
* 设置父3D变换。
* @param value 父3D变换。
*/
parent: Transform3D;
/**
* 创建一个 Transform3D
实例。
* @param owner 所属精灵。
*/
constructor(owner: Sprite3D);
protected _updateLocalMatrix(): void;
protected _onLocalTransform(): void;
protected _onWorldTransform(): void;
/**
* 平移变换。
* @param translation 移动距离。
* @param isLocal 是否局部空间。
*/
translate(translation: laya.d3.math.Vector3, isLocal?: boolean): void;
/**
* 旋转变换。
* @param rotations 旋转幅度。
* @param isLocal 是否局部空间。
* @param isRadian 是否弧度制。
*/
rotate(rotation: laya.d3.math.Vector3, isLocal?: boolean, isRadian?: boolean): void;
}
}
declare module laya.d3.core {
/**
* TransformUV
类用于实现UV变换。
*/
class TransformUV extends laya.events.EventDispatcher {
protected _tempTitlingV3: laya.d3.math.Vector3;
protected _tempRotationMatrix: laya.d3.math.Matrix4x4;
protected _tempTitlingMatrix: laya.d3.math.Matrix4x4;
protected _matrix: laya.d3.math.Matrix4x4;
protected _offset: laya.d3.math.Vector2;
protected _rotation: number;
protected _tiling: laya.d3.math.Vector2;
protected _matNeedUpdte: boolean;
/**
*获取变换矩阵。
* @return 变换矩阵。
*/
matrix: laya.d3.math.Matrix4x4;
/**
*获取偏移。
* @return 偏移。
*/
/**
*设置偏移。
* @param value 偏移。
*/
offset: laya.d3.math.Vector2;
/**
*获取旋转。
* @return 旋转。
*/
/**
*设置旋转。
* @param value 旋转。
*/
rotation: number;
/**
*获取平铺次数。
* @return 平铺次数。
*/
/**
*设置平铺次数。
* @param value 平铺次数。
*/
tiling: laya.d3.math.Vector2;
/**
* 创建一个 TransformUV
实例。
*/
constructor();
protected _updateMatrix(): void;
}
}
declare module laya.d3.core {
/**
* Camera
类用于创建VR摄像机。
*/
class VRCamera extends BaseCamera {
/**
* 获取左横纵比。
* @return 左横纵比。
*/
leftAspectRatio: number;
/**
* 获取右横纵比。
* @return 右横纵比。
*/
rightAspectRatio: number;
/**
* 设置横纵比。
* @param value 横纵比。
*/
aspectRatio: number;
/**
* 获取屏幕空间的左视口。
* @return 屏幕空间的左视口。
*/
leftViewport: laya.d3.math.Viewport;
/**
* 获取屏幕空间的右视口。
* @return 屏幕空间的右视口。
*/
rightViewport: laya.d3.math.Viewport;
/**
* 设置屏幕空间的视口。
* @param 屏幕空间的视口。
*/
viewport: laya.d3.math.Viewport;
/**
* 获取裁剪空间的左视口。
* @return 裁剪空间的左视口。
*/
leftNormalizedViewport: laya.d3.math.Viewport;
/**
* 获取裁剪空间的右视口。
* @return 裁剪空间的右视口。
*/
rightNormalizedViewport: laya.d3.math.Viewport;
/**
* 设置裁剪空间的视口。
* @return 裁剪空间的视口。
*/
normalizedViewport: laya.d3.math.Viewport;
needLeftViewport: boolean;
needRightViewport: boolean;
/**
* 获取左视图矩阵。
* @return 左视图矩阵。
*/
leftViewMatrix: laya.d3.math.Matrix4x4;
/**
* 获取右视图矩阵。
* @return 右视图矩阵。
*/
rightViewMatrix: laya.d3.math.Matrix4x4;
/**
* 获取左投影矩阵。
* @return 左投影矩阵。
*/
leftProjectionMatrix: laya.d3.math.Matrix4x4;
/**
* 获取右投影矩阵。
* @return 右投影矩阵。
*/
rightProjectionMatrix: laya.d3.math.Matrix4x4;
/**
* 获取左投影视图矩阵。
* @return 左投影视图矩阵。
*/
leftProjectionViewMatrix: laya.d3.math.Matrix4x4;
/**
* 获取右投影视图矩阵。
* @return 右投影视图矩阵。
*/
rightProjectionViewMatrix: laya.d3.math.Matrix4x4;
/**
* 创建一个 VRCamera
实例。
* @param leftViewport 左视口。
* @param rightViewport 右视口。
* @param pupilDistande 瞳距。
* @param fieldOfView 视野。
* @param leftAspectRatio 左横纵比。
* @param rightAspectRatio 右横纵比。
* @param nearPlane 近裁面。
* @param farPlane 远裁面。
*/
constructor(pupilDistande?: number, leftAspectRatio?: number, rightAspectRatio?: number, nearPlane?: number, farPlane?: number);
protected _calculateProjectionMatrix(): void;
}
}
declare module laya.d3.graphics {
/**
* @private
* DynamicBatch
类用于动态批处理。
*/
class DynamicBatch implements laya.d3.core.render.IRenderable {
static maxVertexCount: number;
static maxIndexCount: number;
static maxCombineTriangleCount: number;
_vertexDeclaration: VertexDeclaration;
indexOfHost: number;
_vertexBufferCount: number;
triangleCount: number;
combineRenderElementsCount: number;
_getVertexBuffer(index?: number): VertexBuffer3D;
_getIndexBuffer(): IndexBuffer3D;
constructor(vertexDeclaration: VertexDeclaration);
_addCombineRenderObjTest(renderElement: laya.d3.core.render.RenderElement): boolean;
_addCombineRenderObj(renderElement: laya.d3.core.render.RenderElement): void;
_addCombineMaterial(material: laya.d3.core.material.BaseMaterial): void;
_addMaterialToRenderElementOffset(offset: number): void;
_clearRenderElements(): void;
_addToRenderQueue(scene: laya.d3.core.scene.BaseScene): void;
_beforeRender(state: laya.d3.core.render.RenderState): boolean;
_render(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.graphics {
/**
* @private
* DynamicBatchManager
类用于管理动态批处理。
*/
class DynamicBatchManager {
constructor();
getDynamicBatch(_vertexDeclaration: VertexDeclaration, number: number): DynamicBatch;
/**需手动调用*/
_garbageCollection(): void;
_addPrepareRenderElement(renderElement: laya.d3.core.render.RenderElement): void;
_finishCombineDynamicBatch(scene: laya.d3.core.scene.BaseScene): void;
_clearRenderElements(): void;
_addToRenderQueue(scene: laya.d3.core.scene.BaseScene): void;
dispose(): void;
}
}
declare module laya.d3.graphics {
/**
* ...
* @author ...
*/
class FrustumCulling {
constructor();
static RenderObjectCulling(boundFrustum: laya.d3.math.BoundFrustum, scene: laya.d3.core.scene.BaseScene): void;
staticBatchMananger: StaticBatchManager;
staticBatch: StaticBatch;
}
}
declare module laya.d3.graphics {
/**
* IndexBuffer3D
类用于创建索引缓冲。
*/
class IndexBuffer3D extends laya.webgl.utils.Buffer {
/** 8位ubyte无符号索引类型。*/
static INDEXTYPE_UBYTE: string;
/** 16位ushort无符号索引类型。*/
static INDEXTYPE_USHORT: string;
/**
* 创建IndexBuffer3D。
* @param indexType 索引类型。
* @param indexCount 索引个数。
* @param bufferUsage IndexBuffer3D用途类型。
* @param canRead 是否可读。
* @return 索引缓冲。
*/
static create: Function;
/**
* 获取索引类型。
* @return 索引类型。
*/
indexType: string;
/**
* 获取索引类型字节数量。
* @return 索引类型字节数量。
*/
indexTypeByteCount: number;
/**
* 获取索引个数。
* @return 索引个数。
*/
indexCount: number;
/**
* 获取是否可读。
* @return 是否可读。
*/
canRead: boolean;
/**
* 创建一个 IndexBuffer3D,不建议开发者使用并用IndexBuffer3D.create()代替
实例。
* @param indexType 索引类型。
* @param indexCount 索引个数。
* @param bufferUsage IndexBuffer3D用途类型。
* @param canRead 是否可读。
*/
constructor(indexType: string, indexCount: number, bufferUsage?: number, canRead?: boolean);
/**
* 设置数据。
* @param data 索引数据。
* @param bufferOffset 索引缓冲中的偏移。
* @param dataStartIndex 索引数据的偏移。
* @param dataCount 索引数据的数量。
*/
setData(data: any, bufferOffset?: number, dataStartIndex?: number, dataCount?: number): void;
/**
* 获取索引数据。
* @return 索引数据。
*/
getData(): Uint16Array;
/** 彻底销毁索引缓冲。*/
dispose(): void;
}
}
declare module laya.d3.graphics {
/**
* IVertex
接口用于实现创建顶点声明。
*/
interface IVertex {
}
}
declare module laya.d3.graphics {
/**
* ...
* @author ...
*/
class RenderObject {
_render: laya.d3.core.render.BaseRender;
_renderElements: ArrayStaticBatch
类用于静态批处理。
*/
class StaticBatch implements laya.d3.core.render.IRenderable {
static maxVertexCount: number;
/**
* 合并节点为静态批处理。
* @param staticBatchRoot 静态批处理根节点。
*/
static combine(staticBatchRoot: laya.d3.core.Sprite3D): void;
_rootSprite: laya.d3.core.Sprite3D;
_vertexDeclaration: VertexDeclaration;
_material: laya.d3.core.material.BaseMaterial;
_vertexBufferCount: number;
indexOfHost: number;
triangleCount: number;
constructor(rootSprite: laya.d3.core.Sprite3D, vertexDeclaration: VertexDeclaration, material: laya.d3.core.material.BaseMaterial);
_getVertexBuffer(index?: number): VertexBuffer3D;
_getIndexBuffer(): IndexBuffer3D;
_addCombineRenderObjTest(renderElement: laya.d3.core.render.RenderElement): boolean;
_addCombineRenderObj(renderElement: laya.d3.core.render.RenderElement): void;
_deleteCombineRenderObj(renderElement: laya.d3.core.render.RenderElement): void;
_finshCombine(): void;
_clearRenderElements(): void;
_addRenderElement(renderElement: laya.d3.core.render.RenderElement): void;
_getRenderElement(mergeElements: ArrayStaticBatchManager
类用于管理静态批处理。
*/
class StaticBatchManager {
constructor();
getStaticBatch(rootSprite: laya.d3.core.Sprite3D, _vertexDeclaration: VertexDeclaration, material: laya.d3.core.material.BaseMaterial, number: number): StaticBatch;
staticBatch: StaticBatch;
_garbageCollection(): void;
_addPrepareRenderElement(renderElement: laya.d3.core.render.RenderElement): void;
_finishCombineStaticBatch(rootSprite: laya.d3.core.Sprite3D): void;
_clearRenderElements(): void;
_addToRenderQueue(scene: laya.d3.core.scene.BaseScene): void;
dispose(): void;
}
}
declare module laya.d3.graphics {
/**
* VertexBuffer3D
类用于创建顶点缓冲。
*/
class VertexBuffer3D extends laya.webgl.utils.Buffer {
/**
* 创建VertexBuffer3D。
* @param vertexDeclaration 顶点声明。
* @param vertexCount 顶点个数。
* @param bufferUsage VertexBuffer3D用途类型。
* @param canRead 是否可读。
* @return 顶点缓冲。
*/
static create: Function;
/**
* 获取顶点结构声明。
* @return 顶点结构声明。
*/
vertexDeclaration: VertexDeclaration;
/**
* 获取顶点个数。
* @return 顶点个数。
*/
vertexCount: number;
/**
* 获取是否可读。
* @return 是否可读。
*/
canRead: boolean;
/**
* 创建一个 VertexBuffer3D,不建议开发者使用并用VertexBuffer3D.create()代替
实例。
* @param vertexDeclaration 顶点声明。
* @param vertexCount 顶点个数。
* @param bufferUsage VertexBuffer3D用途类型。
* @param canRead 是否可读。
*/
constructor(vertexDeclaration: VertexDeclaration, vertexCount: number, bufferUsage: number, canRead?: boolean);
/**
* 和索引缓冲一起绑定。
* @param ib 索引缓冲。
*/
bindWithIndexBuffer(ib: IndexBuffer3D): void;
/**
* 设置数据。
* @param data 顶点数据。
* @param bufferOffset 顶点缓冲中的偏移。
* @param dataStartIndex 顶点数据的偏移。
* @param dataCount 顶点数据的数量。
*/
setData(data: Float32Array, bufferOffset?: number, dataStartIndex?: number, dataCount?: number): void;
/**
* 获取顶点数据。
* @return 顶点数据。
*/
getData(): Float32Array;
protected detoryResource(): void;
/** 彻底销毁顶点缓冲。*/
dispose(): void;
}
}
declare module laya.d3.graphics {
/**
* ...
* @author ...
*/
class VertexDeclaration {
static _maxVertexDeclarationBit: number;
static maxVertexDeclaration: number;
private static _uniqueIDCounter;
static getVertexStride(vertexElements: ArrayVertexElement
类用于创建顶点结构分配。
*/
class VertexElement {
offset: number;
elementFormat: string;
elementUsage: string;
VertexElement(offset: number, elementFormat: string, elementUsage: string): any;
}
}
declare module laya.d3.graphics {
/**
* ...
* @author ...
*/
class VertexElementFormat {
static Single: string;
static Vector2: string;
static Vector3: string;
static Vector4: string;
static Color: string;
static Byte4: string;
static Short2: string;
static Short4: string;
static NormalizedShort2: string;
static NormalizedShort4: string;
static HalfVector2: string;
static HalfVector4: string;
}
}
declare module laya.d3.graphics {
/**
* ...
* @author ...
*/
class VertexElementUsage {
static POSITION0: string;
static COLOR0: string;
static TEXTURECOORDINATE0: string;
static NORMAL0: string;
static BINORMAL0: string;
static TANGENT0: string;
static BLENDINDICES0: string;
static BLENDWEIGHT0: string;
static DEPTH0: string;
static FOG0: string;
static POINTSIZE0: string;
static SAMPLE0: string;
static TESSELLATEFACTOR0: string;
static COLOR1: string;
static NEXTTEXTURECOORDINATE0: string;
static TEXTURECOORDINATE1: string;
static NEXTTEXTURECOORDINATE1: string;
static CORNERTEXTURECOORDINATE0: string;
static VELOCITY0: string;
static STARTCOLOR0: string;
static ENDCOLOR0: string;
static SIZEROTATION0: string;
static RADIUS0: string;
static RADIAN0: string;
static AGEADDSCALE0: string;
static TIME0: string;
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTangent
类用于创建粒子顶点结构。
*/
class VertexGlitter implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
textureCoordinate: laya.d3.math.Vector2;
time: number;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, textureCoordinate: laya.d3.math.Vector2, time: number);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTangent
类用于创建粒子顶点结构。
*/
class VertexParticle implements IVertex {
static vertexDeclaration: VertexDeclaration;
cornerTextureCoordinate: laya.d3.math.Vector4;
position: laya.d3.math.Vector3;
velocity: laya.d3.math.Vector3;
startColor: laya.d3.math.Vector4;
endColor: laya.d3.math.Vector4;
sizeRotation: laya.d3.math.Vector3;
radius: laya.d3.math.Vector2;
radian: laya.d3.math.Vector4;
ageAddScale: number;
time: number;
vertexDeclaration: VertexDeclaration;
constructor(cornerTextureCoordinate: laya.d3.math.Vector4, position: laya.d3.math.Vector3, velocity: laya.d3.math.Vector3, startColor: laya.d3.math.Vector4, endColor: laya.d3.math.Vector4, sizeRotation: laya.d3.math.Vector3, radius: laya.d3.math.Vector2, radian: laya.d3.math.Vector4, ageAddScale: number, time: number);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColor
类用于创建位置、法线、颜色顶点结构。
*/
class VertexPositionNormalColor implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorSkin
类用于创建位置、法线、颜色、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorSkin implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorSkin
类用于创建位置、法线、颜色、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorSkinTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, tangent: laya.d3.math.Vector4, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTangent
类用于创建位置、法线、颜色、切线顶点结构。
*/
class VertexPositionNormalColorTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, tangent: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTexture
类用于创建位置、法线、颜色、纹理顶点结构。
*/
class VertexPositionNormalColorTexture implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate: laya.d3.math.Vector2;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate: laya.d3.math.Vector2);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTexture
类用于创建位置、法线、颜色、纹理顶点结构。
*/
class VertexPositionNormalColorTexture0Texture1 implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureSkin
类用于创建位置、法线、颜色、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorTexture0Texture1Skin implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureSkin
类用于创建位置、法线、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorTexture0Texture1SkinTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
VertexPositionNormalColorTexture0SkinTangent(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4): void;
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureTangent
类用于创建位置、法线、颜色、纹理、切线顶点结构。
*/
class VertexPositionNormalColorTexture0Texture1Tangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
VertexPositionNormalColorTexture0Tangent(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureSkin
类用于创建位置、法线、颜色、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorTextureSkin implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate: laya.d3.math.Vector2, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureSkin
类用于创建位置、法线、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalColorTextureSkinTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureTangent
类用于创建位置、法线、颜色、纹理、切线顶点结构。
*/
class VertexPositionNormalColorTextureTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
color: laya.d3.math.Vector4;
textureCoordinate: laya.d3.math.Vector2;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, color: laya.d3.math.Vector4, textureCoordinate: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTexture
类用于创建位置、法线、纹理顶点结构。
*/
class VertexPositionNormalTexture implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate: laya.d3.math.Vector2;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate: laya.d3.math.Vector2);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTexture
类用于创建位置、法线、纹理顶点结构。
*/
class VertexPositionNormalTexture0Texture1 implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureSkin
类用于创建位置、法线、颜色、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalTexture0Texture1Skin implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureSkin
类用于创建位置、法线、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalTexture0Texture1SkinTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
VertexPositionNormalTexture0SkinTangent(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4): void;
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureTangent
类用于创建位置、法线、纹理、切线顶点结构。
*/
class VertexPositionNormalTexture0Texture1Tangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate0: laya.d3.math.Vector2;
textureCoordinate1: laya.d3.math.Vector2;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
VertexPositionNormalTexture0Tangent(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate0: laya.d3.math.Vector2, textureCoordinate1: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3): void;
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalColorTextureSkin
类用于创建位置、法线、颜色、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalTextureSkin implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate: laya.d3.math.Vector2, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureSkin
类用于创建位置、法线、纹理、骨骼索引、骨骼权重顶点结构。
*/
class VertexPositionNormalTextureSkinTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate: laya.d3.math.Vector2;
blendIndex: laya.d3.math.Vector4;
blendWeight: laya.d3.math.Vector4;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3, blendIndex: laya.d3.math.Vector4, blendWeight: laya.d3.math.Vector4);
}
}
declare module laya.d3.graphics {
/**
* VertexPositionNormalTextureTangent
类用于创建位置、法线、纹理、切线顶点结构。
*/
class VertexPositionNormalTextureTangent implements IVertex {
static vertexDeclaration: VertexDeclaration;
position: laya.d3.math.Vector3;
normal: laya.d3.math.Vector3;
textureCoordinate: laya.d3.math.Vector2;
tangent: laya.d3.math.Vector3;
vertexDeclaration: VertexDeclaration;
constructor(position: laya.d3.math.Vector3, normal: laya.d3.math.Vector3, textureCoordinate: laya.d3.math.Vector2, tangent: laya.d3.math.Vector3);
}
}
declare module laya.d3.loaders {
/**
* @private
* LoadModel
类用于模型加载。
*/
class LoadModel {
private static _attrReg;
mesh: laya.d3.resource.models.Mesh;
/**
* 创建一个 LoadModel
实例。
*/
constructor(data: ArrayBuffer, mesh: laya.d3.resource.models.Mesh, materials: ArrayBoundBox
类用于创建包围盒。
*/
class BoundBox {
/**最小顶点。*/
min: Vector3;
/**最大顶点。*/
max: Vector3;
/**
* 创建一个 BoundBox
实例。
* @param min 包围盒的最小顶点。
* @param max 包围盒的最大顶点。
*/
constructor(min: Vector3, max: Vector3);
/**
* 获取包围盒的8个角顶点。
* @param corners 返回顶点的输出队列。
*/
getCorners(corners: ArrayBoundFrustum
类用于创建锥截体。
*/
class BoundFrustum {
private static _tempV30;
private static _tempV31;
private static _tempV32;
private static _tempV33;
private static _tempV34;
private static _tempV35;
private static _tempV36;
private static _tempV37;
/**
* 创建一个 BoundFrustum
实例。
* @param matrix 锥截体的描述4x4矩阵。
*/
constructor(matrix: Matrix4x4);
/**
* 获取描述矩阵。
* @return 描述矩阵。
*/
/**
* 设置描述矩阵。
* @param matrix 描述矩阵。
*/
matrix: Matrix4x4;
/**
* 获取近平面。
* @return 近平面。
*/
near: Plane;
/**
* 获取远平面。
* @return 远平面。
*/
far: Plane;
/**
* 获取左平面。
* @return 左平面。
*/
left: Plane;
/**
* 获取右平面。
* @return 右平面。
*/
right: Plane;
/**
* 获取顶平面。
* @return 顶平面。
*/
top: Plane;
/**
* 获取底平面。
* @return 底平面。
*/
bottom: Plane;
/**
* 判断是否与其他锥截体相等。
* @param other 锥截体。
*/
equalsBoundFrustum(other: BoundFrustum): boolean;
/**
* 判断是否与其他对象相等。
* @param obj 对象。
*/
equalsObj(obj: any): boolean;
/**
* 获取锥截体的任意一平面。
* 0:近平面
* 1:远平面
* 2:左平面
* 3:右平面
* 4:顶平面
* 5:底平面
* @param index 索引。
*/
getPlane(index: number): Plane;
/**
* 锥截体三个相交平面的交点。
* @param p1 平面1。
* @param p2 平面2。
* @param p3 平面3。
*/
static get3PlaneInterPoint(p1: Plane, p2: Plane, p3: Plane): Vector3;
/**
* 锥截体的8个顶点。
* @param corners 返回顶点的输出队列。
*/
getCorners(corners: ArrayBoundSphere
类用于创建包围球。
*/
class BoundSphere {
private static _tempVector3;
/**包围球的中心。*/
center: Vector3;
/**包围球的半径。*/
radius: number;
/**
* 创建一个 BoundSphere
实例。
* @param center 包围球的中心。
* @param radius 包围球的半径。
*/
constructor(center: Vector3, radius: number);
toDefault(): void;
/**
* 从顶点的子队列生成包围球。
* @param points 顶点的队列。
* @param start 顶点子队列的起始偏移。
* @param count 顶点子队列的顶点数。
* @param result 生成的包围球。
*/
static createFromSubPoints(points: ArrayCollision
类用于检测碰撞。
*/
class Collision {
private static _tempV30;
private static _tempV31;
private static _tempV32;
private static _tempV33;
private static _tempV34;
private static _tempV35;
private static _tempV36;
/**
* 创建一个 Collision
实例。
*/
constructor();
/**
* 空间中点到平面的距离
* @param plane 平面
* @param point 点
*/
static distancePlaneToPoint(plane: Plane, point: Vector3): number;
/**
* 空间中点到包围盒的距离
* @param box 包围盒
* @param point 点
*/
static distanceBoxToPoint(box: BoundBox, point: Vector3): number;
/**
* 空间中包围盒到包围盒的距离
* @param box1 包围盒1
* @param box2 包围盒2
*/
static distanceBoxToBox(box1: BoundBox, box2: BoundBox): number;
/**
* 空间中点到包围球的距离
* @param sphere 包围球
* @param point 点
*/
static distanceSphereToPoint(sphere: BoundSphere, point: Vector3): number;
/**
* 空间中包围球到包围球的距离
* @param sphere1 包围球1
* @param sphere2 包围球2
*/
static distanceSphereToSphere(sphere1: BoundSphere, sphere2: BoundSphere): number;
/**
* 空间中射线和三角面是否相交,输出距离
* @param ray 射线
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @param out 点和三角面的距离
* @return 是否相交
*/
static intersectsRayAndTriangleRD(ray: Ray, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3, out: number): boolean;
/**
* 空间中射线和三角面是否相交,输出相交点
* @param ray 射线
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @param out 相交点
* @return 是否相交
*/
static intersectsRayAndTriangleRP(ray: Ray, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3, out: Vector3): boolean;
/**
* 空间中射线和点是否相交
* @param sphere1 包围球1
* @param sphere2 包围球2
*/
static intersectsRayAndPoint(ray: Ray, point: Vector3): boolean;
/**
* 空间中射线和射线是否相交
* @param ray1 射线1
* @param ray2 射线2
* @param out 相交点
*/
static intersectsRayAndRay(ray1: Ray, ray2: Ray, out: Vector3): boolean;
/**
* 空间中平面和三角面是否相交
* @param plane 平面
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @return 返回空间位置关系
*/
static intersectsPlaneAndTriangle(plane: Plane, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3): number;
/**
* 空间中射线和平面是否相交
* @param ray 射线
* @param plane 平面
* @param out 相交距离,如果为0,不相交
*/
static intersectsRayAndPlaneRD(ray: Ray, plane: Plane, out: number): boolean;
/**
* 空间中射线和平面是否相交
* @param ray 射线
* @param plane 平面
* @param out 相交点
*/
static intersectsRayAndPlaneRP(ray: Ray, plane: Plane, out: Vector3): boolean;
/**
* 空间中射线和包围盒是否相交
* @param ray 射线
* @param box 包围盒
* @param out 相交距离,如果为0,不相交
*/
static intersectsRayAndBoxRD(ray: Ray, box: BoundBox, out: number): boolean;
/**
* 空间中射线和包围盒是否相交
* @param ray 射线
* @param box 包围盒
* @param out 相交点
*/
static intersectsRayAndBoxRP(ray: Ray, box: BoundBox, out: Vector3): boolean;
/**
* 空间中射线和包围球是否相交
* @param ray 射线
* @param sphere 包围球
* @param out 相交距离,如果为0,不相交
*/
static intersectsRayAndSphereRD(ray: Ray, sphere: BoundSphere, out: number): boolean;
/**
* 空间中射线和包围球是否相交
* @param ray 射线
* @param sphere 包围球
* @param out 相交点
*/
static intersectsRayAndSphereRP(ray: Ray, sphere: BoundSphere, out: Vector3): boolean;
/**
* 空间中包围球和三角面是否相交
* @param sphere 包围球
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @return 返回是否相交
*/
static intersectsSphereAndTriangle(sphere: BoundSphere, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3): boolean;
/**
* 空间中点和平面是否相交
* @param plane 平面
* @param point 点
* @return 碰撞状态
*/
static intersectsPlaneAndPoint(plane: Plane, point: Vector3): number;
/**
* 空间中平面和平面是否相交
* @param plane1 平面1
* @param plane2 平面2
* @return 是否相交
*/
static intersectsPlaneAndPlane(plane1: Plane, plane2: Plane): boolean;
/**
* 空间中平面和平面是否相交
* @param plane1 平面1
* @param plane2 平面2
* @param line 相交线
* @return 是否相交
*/
static intersectsPlaneAndPlaneRL(plane1: Plane, plane2: Plane, line: Ray): boolean;
/**
* 空间中平面和包围盒是否相交
* @param plane 平面
* @param box 包围盒
* @return 碰撞状态
*/
static intersectsPlaneAndBox(plane: Plane, box: BoundBox): number;
/**
* 空间中平面和包围球是否相交
* @param plane 平面
* @param sphere 包围球
* @return 碰撞状态
*/
static intersectsPlaneAndSphere(plane: Plane, sphere: BoundSphere): number;
/**
* 空间中包围盒和包围盒是否相交
* @param box1 包围盒1
* @param box2 包围盒2
* @return 是否相交
*/
static intersectsBoxAndBox(box1: BoundBox, box2: BoundBox): boolean;
/**
* 空间中包围盒和包围球是否相交
* @param box 包围盒
* @param sphere 包围球
* @return 是否相交
*/
static intersectsBoxAndSphere(box: BoundBox, sphere: BoundSphere): boolean;
/**
* 空间中包围球和包围球是否相交
* @param sphere1 包围球1
* @param sphere2 包围球2
* @return 是否相交
*/
static intersectsSphereAndSphere(sphere1: BoundSphere, sphere2: BoundSphere): boolean;
/**
* 空间中包围盒是否包含另一个点
* @param box 包围盒
* @param point 点
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static boxContainsPoint(box: BoundBox, point: Vector3): number;
/**
* 空间中包围盒是否包含另一个包围盒
* @param box1 包围盒1
* @param box2 包围盒2
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static boxContainsBox(box1: BoundBox, box2: BoundBox): number;
/**
* 空间中包围盒是否包含另一个包围球
* @param box 包围盒
* @param sphere 包围球
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static boxContainsSphere(box: BoundBox, sphere: BoundSphere): number;
/**
* 空间中包围球是否包含另一个点
* @param sphere 包围球
* @param point 点
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static sphereContainsPoint(sphere: BoundSphere, point: Vector3): number;
/**
* 空间中包围球是否包含另一个三角面
* @param sphere
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @return 返回空间位置关系
*/
static sphereContainsTriangle(sphere: BoundSphere, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3): number;
/**
* 空间中包围球是否包含另一包围盒
* @param sphere 包围球
* @param box 包围盒
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static sphereContainsBox(sphere: BoundSphere, box: BoundBox): number;
/**
* 空间中包围球是否包含另一包围球
* @param sphere1 包围球
* @param sphere2 包围球
* @return 位置关系:0 不想交,1 包含, 2 相交
*/
static sphereContainsSphere(sphere1: BoundSphere, sphere2: BoundSphere): number;
/**
* 空间中点与三角面的最近点
* @param point 点
* @param vertex1 三角面顶点1
* @param vertex2 三角面顶点2
* @param vertex3 三角面顶点3
* @param out 最近点
*/
static closestPointPointTriangle(point: Vector3, vertex1: Vector3, vertex2: Vector3, vertex3: Vector3, out: Vector3): void;
/**
* 空间中平面与一点的最近点
* @param plane 平面
* @param point 点
* @param out 最近点
*/
static closestPointPlanePoint(plane: Plane, point: Vector3, out: Vector3): void;
/**
* 空间中包围盒与一点的最近点
* @param box 包围盒
* @param point 点
* @param out 最近点
*/
static closestPointBoxPoint(box: BoundBox, point: Vector3, out: Vector3): void;
/**
* 空间中包围球与一点的最近点
* @param sphere 包围球
* @param point 点
* @param out 最近点
*/
static closestPointSpherePoint(sphere: BoundSphere, point: Vector3, out: Vector3): void;
/**
* 空间中包围球与包围球的最近点
* @param sphere1 包围球1
* @param sphere2 包围球2
* @param out 最近点
*/
static closestPointSphereSphere(sphere1: BoundSphere, sphere2: BoundSphere, out: Vector3): void;
}
}
declare module laya.d3.math {
/**
* ContainmentType
类用于定义空间物体位置关系。
*/
class ContainmentType {
static Disjoint: number;
static Contains: number;
static Intersects: number;
}
}
declare module laya.d3.math {
/**
* MathUtils
类用于创建数学工具。
*/
class MathUtils3D {
/**单精度浮点(float)零的容差*/
static zeroTolerance: number;
/**浮点数默认最大值*/
static MaxValue: number;
/**浮点数默认最小值*/
static MinValue: number;
/**
* 创建一个 MathUtils
实例。
*/
constructor();
/**
* 是否在容差的范围内近似于0
* @param 判断值
* @return 是否近似于0
*/
static isZero(v: number): boolean;
/**
* 两个值是否在容差的范围内近似相等
* @param 判断值
* @return 是否近似于0
*/
static nearEqual(n1: number, n2: number): boolean;
}
}
declare module laya.d3.math {
/**
* Matrix3x3
类用于创建3x3矩阵。
*/
class Matrix3x3 {
/**默认矩阵,禁止修改*/
static DEFAULT: Matrix3x3;
/**
* 根据指定平移生成3x3矩阵
* @param tra 平移
* @param out 输出矩阵
*/
static createFromTranslation(trans: Vector2, out: Matrix3x3): void;
/**
* 根据指定旋转生成3x3矩阵
* @param rad 旋转值
* @param out 输出矩阵
*/
static createFromRotation(rad: number, out: Matrix3x3): void;
/**
* 根据制定缩放生成3x3矩阵
* @param scale 缩放值
* @param out 输出矩阵
*/
static createFromScaling(scale: Vector2, out: Matrix3x3): void;
/**
* 从4x4矩阵转换为一个3x3的矩阵(原则为upper-left,忽略第四行四列)
* @param sou 4x4源矩阵
* @param out 3x3输出矩阵
*/
static createFromMatrix4x4(sou: Matrix4x4, out: Matrix3x3): void;
/**
* 两个3x3矩阵的相乘
* @param left 左矩阵
* @param right 右矩阵
* @param out 输出矩阵
*/
static multiply(left: Matrix3x3, right: Matrix3x3, out: Matrix3x3): void;
/**矩阵元素数组*/
elements: Float32Array;
/**
* 创建一个 Matrix3x3
实例。
*/
constructor();
/**
* 计算3x3矩阵的行列式
* @return 矩阵的行列式
*/
determinant(): number;
/**
* 通过一个二维向量转换3x3矩阵
* @param tra 转换向量
* @param out 输出矩阵
*/
translate(trans: Vector2, out: Matrix3x3): void;
/**
* 根据指定角度旋转3x3矩阵
* @param rad 旋转角度
* @param out 输出矩阵
*/
rotate(rad: number, out: Matrix3x3): void;
/**
*根据制定缩放3x3矩阵
* @param scale 缩放值
* @param out 输出矩阵
*/
scale(scale: Vector2, out: Matrix3x3): void;
/**
* 计算3x3矩阵的逆矩阵
* @param out 输出的逆矩阵
*/
invert(out: Matrix3x3): void;
/**
* 计算3x3矩阵的转置矩阵
* @param out 输出矩阵
*/
transpose(out: Matrix3x3): void;
/** 设置已有的矩阵为单位矩阵*/
identity(): void;
/**
* 克隆一个3x3矩阵
* @param out 输出的3x3矩阵
*/
cloneTo(out: Matrix3x3): void;
/**
* 从一个3x3矩阵复制
* @param sou 源3x3矩阵
*/
copyFrom(sou: Matrix3x3): void;
/**
* 从一个数组复制
* @param sou 源Float32Array数组
*/
copyFromArray(sou: Float32Array): void;
}
}
declare module laya.d3.math {
/**
* Matrix4x4
类用于创建4x4矩阵。
*/
class Matrix4x4 {
private static TEMP;
/**默认矩阵,禁止修改*/
static DEFAULT: Matrix4x4;
/**
* 绕X轴旋转
* @param rad 旋转角度
* @param out 输出矩阵
*/
static createRotationX(rad: number, out: Matrix4x4): void;
/**
* 绕Y轴旋转
* @param rad 旋转角度
* @param out 输出矩阵
*/
static createRotationY(rad: number, out: Matrix4x4): void;
/**
* 绕Z轴旋转
* @param rad 旋转角度
* @param out 输出矩阵
*/
static createRotationZ(rad: number, out: Matrix4x4): void;
/**
* 根据平移计算输出矩阵
* @param trans 平移向量
* @param out 输出矩阵
*/
static createTranslate(trans: Vector3, out: Matrix4x4): void;
/**
* 根据缩放计算输出矩阵
* @param scale 缩放值
* @param out 输出矩阵
*/
static createScaling(scale: Vector3, out: Matrix4x4): void;
/**
* 计算两个矩阵的乘法
* @param left left矩阵
* @param right right矩阵
* @param out 输出矩阵
*/
static multiply(left: Matrix4x4, right: Matrix4x4, out: Matrix4x4): void;
/**
* 从四元数计算旋转矩阵
* @param rotation 四元数
* @param out 输出矩阵
*/
static createFromQuaternion(rotation: Quaternion, out: Matrix4x4): void;
/**
* 计算仿射矩阵
* @param trans 平移
* @param rot 旋转
* @param scale 缩放
* @param out 输出矩阵
*/
static createAffineTransformation(trans: Vector3, rot: Quaternion, scale: Vector3, out: Matrix4x4): void;
/**
* 计算观察矩阵
* @param eye 视点位置
* @param center 视点目标
* @param up 向上向量
* @param out 输出矩阵
*/
static createLookAt(eye: Vector3, center: Vector3, up: Vector3, out: Matrix4x4): void;
/**
* 计算透视投影矩阵。
* @param fov 视角。
* @param aspect 横纵比。
* @param near 近裁面。
* @param far 远裁面。
* @param out 输出矩阵。
*/
static createPerspective(fov: number, aspect: number, near: number, far: number, out: Matrix4x4): void;
/**
* 计算正交投影矩阵。
* @param left 视椎左边界。
* @param right 视椎右边界。
* @param bottom 视椎底边界。
* @param top 视椎顶边界。
* @param near 视椎近边界。
* @param far 视椎远边界。
* @param out 输出矩阵。
*/
static createOrthogonal(left: number, right: number, bottom: number, top: number, near: number, far: number, out: Matrix4x4): void;
/**矩阵元素数组*/
elements: Float32Array;
/**
* 创建一个 Matrix4x4
实例。
* @param 4x4矩阵的各元素
*/
constructor(m11?: number, m12?: number, m13?: number, m14?: number, m21?: number, m22?: number, m23?: number, m24?: number, m31?: number, m32?: number, m33?: number, m34?: number, m41?: number, m42?: number, m43?: number, m44?: number);
/**
* 判断两个4x4矩阵的值是否相等。
* @param other 4x4矩阵
*/
equalsOtherMatrix(other: Matrix4x4): boolean;
/**
* 分解矩阵
* @param translation 平移
* @param rotation 旋转
* @param scale 缩放
* @return 是否成功
*/
decompose(translation: Vector3, rotation: Quaternion, scale: Vector3): boolean;
/**归一化矩阵 */
normalize(): void;
/**计算矩阵的转置矩阵*/
transpose(): Matrix4x4;
/**
* 计算一个矩阵的逆矩阵
* @param out 输出矩阵
*/
invert(out: Matrix4x4): void;
/**设置矩阵为单位矩阵*/
identity(): void;
/**
* 克隆一个4x4矩阵
* @param out 输出的4x4矩阵
*/
cloneTo(out: Matrix4x4): void;
/**
* 从一个4x4矩阵复制
* @param sou 源4x4矩阵
*/
copyFrom(sou: Matrix4x4): void;
/**
* 从一个数组复制
* @param sou 源Float32Array数组
*/
copyFromArray(sou: Float32Array): void;
}
}
declare module laya.d3.math {
/**
* Plane
类用于创建平面。
*/
class Plane {
private static _TEMPVec3;
/**平面的向量*/
normal: Vector3;
/**平面到坐标系原点的距离*/
distance: number;
/**平面与其他几何体相交类型*/
static PlaneIntersectionType_Back: number;
static PlaneIntersectionType_Front: number;
static PlaneIntersectionType_Intersecting: number;
/**
* 创建一个 Plane
实例。
* @param normal 平面的向量
* @param d 平面到原点的距离
*/
constructor(normal: Vector3, d?: number);
/**
* 创建一个 Plane
实例。
* @param point1 第一点
* @param point2 第二点
* @param point3 第三点
*/
static createPlaneBy3P(point1: Vector3, point2: Vector3, point3: Vector3): Plane;
/**
* 更改平面法线向量的系数,使之成单位长度。
*/
normalize(): void;
}
}
declare module laya.d3.math {
/**
* Quaternion
类用于创建四元数。
*/
class Quaternion {
private static TEMPVector30;
private static TEMPVector31;
private static TEMPVector32;
private static TEMPVector33;
private static TEMPMatrix0;
private static TEMPMatrix1;
/**默认矩阵,禁止修改*/
static DEFAULT: Quaternion;
/**
* 从欧拉角基元四元数(顺序为Yaw、Pitch、Roll)
* @param yaw yaw值
* @param pitch pitch值
* @param roll roll值
* @param out 输出四元数
*/
static createFromYawPitchRoll(yaw: number, pitch: number, roll: number, out: Quaternion): void;
/**
* 计算两个四元数相乘
* @param left left四元数
* @param right right四元数
* @param out 输出四元数
*/
static multiply(left: Quaternion, right: Quaternion, out: Quaternion): void;
/**
* 从指定的轴和角度计算四元数
* @param axis 轴
* @param rad 角度
* @param out 输出四元数
*/
static createFromAxisAngle(axis: Vector3, rad: number, out: Quaternion): void;
/**
* 根据3x3矩阵计算四元数
* @param sou 源矩阵
* @param out 输出四元数
*/
static createFromMatrix3x3(sou: Matrix3x3, out: Quaternion): void;
/**
* 从旋转矩阵计算四元数
* @param mat 旋转矩阵
* @param out 输出四元数
*/
static createFromMatrix4x4(mat: Matrix4x4, out: Quaternion): void;
/**
* 球面插值
* @param left left四元数
* @param right right四元数
* @param a 插值比例
* @param out 输出四元数
* @return 输出Float32Array
*/
static slerp(left: Quaternion, right: Quaternion, t: number, out: Quaternion): Float32Array;
/**
* 计算两个四元数的线性插值
* @param left left四元数
* @param right right四元数b
* @param t 插值比例
* @param out 输出四元数
*/
static lerp(left: Quaternion, right: Quaternion, t: number, out: Quaternion): void;
/**
* 计算两个四元数的和
* @param left left四元数
* @param right right 四元数
* @param out 输出四元数
*/
static add(left: Quaternion, right: Quaternion, out: Quaternion): void;
/**
* 计算两个四元数的点积
* @param left left四元数
* @param right right四元数
* @return 点积
*/
static dot(left: Quaternion, right: Quaternion): number;
/**四元数元素数组*/
elements: Float32Array;
/**
* 获取四元数的x值
*/
x: number;
/**
* 获取四元数的y值
*/
y: number;
/**
* 获取四元数的z值
*/
z: number;
/**
* 获取四元数的w值
*/
w: number;
/**
* 创建一个 Quaternion
实例。
* @param x 四元数的x值
* @param y 四元数的y值
* @param z 四元数的z值
* @param w 四元数的w值
*/
constructor(x?: number, y?: number, z?: number, w?: number);
/**
* 根据缩放值缩放四元数
* @param scale 缩放值
* @param out 输出四元数
*/
scaling(scaling: number, out: Quaternion): void;
/**
* 归一化四元数
* @param out 输出四元数
*/
normalize(out: Quaternion): void;
/**
* 计算四元数的长度
* @return 长度
*/
length(): number;
/**
* 根据绕X轴的角度旋转四元数
* @param rad 角度
* @param out 输出四元数
*/
rotateX(rad: number, out: Quaternion): void;
/**
* 根据绕Y轴的制定角度旋转四元数
* @param rad 角度
* @param out 输出四元数
*/
rotateY(rad: number, out: Quaternion): void;
/**
* 根据绕Z轴的制定角度旋转四元数
* @param rad 角度
* @param out 输出四元数
*/
rotateZ(rad: number, out: Quaternion): void;
/**
* 分解四元数到欧拉角(顺序为Yaw、Pitch、Roll),参考自http://xboxforums.create.msdn.com/forums/p/4574/23988.aspx#23988,问题绕X轴翻转超过±90度时有,会产生瞬间反转
* @param quaternion 源四元数
* @param out 欧拉角值
*/
getYawPitchRoll(out: Vector3): void;
/**
* 求四元数的逆
* @param out 输出四元数
*/
invert(out: Quaternion): void;
/**
*设置四元数为单位算数
* @param out 输出四元数
*/
identity(): void;
/**
* 克隆一个四元数
* @param out 输出的四元数
*/
cloneTo(out: Quaternion): void;
/**
* 从一个四元数复制
* @param sou 源四元数
*/
copyFrom(sou: Quaternion): void;
/**
* 从一个数组复制
* @param sou 源Float32Array数组
*/
copyFromArray(sou: Float32Array): void;
}
}
declare module laya.d3.math {
/**
* Ray
类用于创建射线。
*/
class Ray {
/**原点*/
origin: Vector3;
/**方向*/
direction: Vector3;
/**
* 创建一个 Ray
实例。
* @param origin 射线的起点
* @param direction 射线的方向
*/
constructor(origin: Vector3, direction: Vector3);
}
}
declare module laya.d3.math {
/**
* Vector2
类用于创建二维向量。
*/
class Vector2 {
/**零向量,禁止修改*/
static ZERO: Vector2;
/**一向量,禁止修改*/
static ONE: Vector2;
/**二维向量元素数组*/
elements: any;
/**
* 获取X轴坐标。
* @return x X轴坐标。
*/
x: number;
/**
* 获取Y轴坐标。
* @return y Y轴坐标。
*/
y: number;
/**
* 创建一个 Vector2
实例。
* @param x X轴坐标。
* @param y Y轴坐标。
*/
constructor(x?: number, y?: number);
/**
* 从一个克隆二维向量克隆。
* @param v 源二维向量。
*/
clone(v: Vector2): void;
}
}
declare module laya.d3.math {
/**
* Vector3
类用于创建三维向量。
*/
class Vector3 {
private static TEMPVec4;
/**零向量,禁止修改*/
static ZERO: Vector3;
/**一向量,禁止修改*/
static ONE: Vector3;
/**X轴单位向量,禁止修改*/
static UnitX: Vector3;
/**Y轴单位向量,禁止修改*/
static UnitY: Vector3;
/**Z轴单位向量,禁止修改*/
static UnitZ: Vector3;
/**右手坐标系统前向量,禁止修改*/
static ForwardRH: Vector3;
/**左手坐标系统前向量,禁止修改*/
static ForwardLH: Vector3;
/**上向量,禁止修改*/
static Up: Vector3;
/**
* 两个三维向量距离的平方。
* @param value1 向量1。
* @param value2 向量2。
* @return 距离的平方。
*/
static distanceSquared(value1: Vector3, value2: Vector3): number;
/**
* 两个三维向量距离。
* @param value1 向量1。
* @param value2 向量2。
* @return 距离。
*/
static distance(value1: Vector3, value2: Vector3): number;
/**
* 分别取两个三维向量x、y、z的最小值计算新的三维向量。
* @param a。
* @param b。
* @param out。
*/
static min(a: Vector3, b: Vector3, out: Vector3): void;
/**
* 分别取两个三维向量x、y、z的最大值计算新的三维向量。
* @param a a三维向量。
* @param b b三维向量。
* @param out 结果三维向量。
*/
static max(a: Vector3, b: Vector3, out: Vector3): void;
/**
* 根据四元数旋转三维向量。
* @param source 源三维向量。
* @param rotation 旋转四元数。
* @param out 输出三维向量。
*/
static transformQuat(source: Vector3, rotation: Quaternion, out: Vector3): void;
/**
* 计算标量长度。
* @param a 源三维向量。
* @return 标量长度。
*/
static scalarLength(a: Vector3): number;
/**
* 计算标量长度。
* @param a 源三维向量。
* @return 标量长度的平方。
*/
static scalarLengthSquared(a: Vector3): number;
/**
* 归一化三维向量。
* @param s 源三维向量。
* @param out 输出三维向量。
*/
static normalize(s: Vector3, out: Vector3): void;
/**
* 计算两个三维向量的乘积。
* @param a left三维向量。
* @param b right三维向量。
* @param out 输出三维向量。
*/
static multiply(a: Vector3, b: Vector3, out: Vector3): void;
/**
* 缩放三维向量。
* @param a 源三维向量。
* @param b 缩放值。
* @param out 输出三维向量。
*/
static scale(a: Vector3, b: number, out: Vector3): void;
/**
* 插值三维向量。
* @param a left向量。
* @param b right向量。
* @param t 插值比例。
* @param out 输出向量。
*/
static lerp(a: Vector3, b: Vector3, t: number, out: Vector3): void;
/**
* 通过矩阵转换一个三维向量到另外一个三维向量。
* @param vector 源三维向量。
* @param transform 变换矩阵。
* @param result 输出三维向量。
*/
static transformV3ToV3(vector: Vector3, transform: Matrix4x4, result: Vector3): void;
/**
* 通过矩阵转换一个三维向量到另外一个四维向量。
* @param vector 源三维向量。
* @param transform 变换矩阵。
* @param result 输出四维向量。
*/
static transformV3ToV4(vector: Vector3, transform: Matrix4x4, result: Vector4): void;
/**
* 通过法线矩阵转换一个法线三维向量到另外一个三维向量。
* @param normal 源法线三维向量。
* @param transform 法线变换矩阵。
* @param result 输出法线三维向量。
*/
static TransformNormal(normal: Vector3, transform: Matrix4x4, result: Vector3): void;
/**
* 通过矩阵转换一个三维向量到另外一个归一化的三维向量。
* @param vector 源三维向量。
* @param transform 变换矩阵。
* @param result 输出三维向量。
*/
static transformCoordinate(coordinate: Vector3, transform: Matrix4x4, result: Vector3): void;
/**
* 求一个指定范围的向量
* @param value clamp向量
* @param min 最小
* @param max 最大
* @param out 输出向量
*/
static Clamp(value: Vector3, min: Vector3, max: Vector3, out: Vector3): void;
/**
* 求两个三维向量的和。
* @param a left三维向量。
* @param b right三维向量。
* @param out 输出向量。
*/
static add(a: Vector3, b: Vector3, out: Vector3): void;
/**
* 求两个三维向量的差。
* @param a left三维向量。
* @param b right三维向量。
* @param o out 输出向量。
*/
static subtract(a: Vector3, b: Vector3, o: Vector3): void;
/**
* 求两个三维向量的叉乘。
* @param a left向量。
* @param b right向量。
* @param o 输出向量。
*/
static cross(a: Vector3, b: Vector3, o: Vector3): void;
/**
* 求两个三维向量的点积。
* @param a left向量。
* @param b right向量。
* @return 点积。
*/
static dot(a: Vector3, b: Vector3): number;
static equals(a: Vector3, b: Vector3): boolean;
/**三维向量元素数组*/
elements: any;
/**
* 获取X轴坐标。
* @return x X轴坐标。
*/
/**
* 设置X轴坐标。
* @param x X轴坐标。
*/
x: number;
/**
* 获取Y轴坐标。
* @return y Y轴坐标。
*/
/**
* 设置Y轴坐标。
* @param y Y轴坐标。
*/
y: number;
/**
* 获取Z轴坐标。
* @return z Z轴坐标。
*/
/**
* 设置Z轴坐标。
* @param z Z轴坐标。
*/
z: number;
/**
* 创建一个 Vector3
实例。
* @param x X轴坐标。
* @param y Y轴坐标。
* @param z Z轴坐标。
*/
constructor(x?: number, y?: number, z?: number);
/**
* 从一个三维向量复制。
* @param v 源向量。
*/
copyFrom(v: Vector3): Vector3;
/**
* 克隆三维向量。
* @return 输出三维向量。
*/
clone(): Vector3;
/**
* 克隆三维向量。
* @param dest 输出三维向量。
*/
cloneTo(dest: Vector3): void;
toDefault(): void;
}
}
declare module laya.d3.math {
/**
* Vector4
类用于创建四维向量。
*/
class Vector4 {
/**零向量,禁止修改*/
static ZERO: Vector4;
/**
* 插值四维向量。
* @param a left向量。
* @param b right向量。
* @param t 插值比例。
* @param out 输出向量。
*/
static lerp(a: Vector4, b: Vector4, t: number, out: Vector4): void;
/**四维向量元素数组*/
elements: any;
/**
* 获取X轴坐标。
* @return x X轴坐标。
*/
x: number;
/**
* 获取Y轴坐标。
* @return y Y轴坐标。
*/
y: number;
/**
* 获取Z轴坐标。
* @return z Z轴坐标。
*/
z: number;
/**
* 获取W轴坐标。
* @return w W轴坐标。
*/
w: number;
/**
* 创建一个 Vector4
实例。
* @param x X轴坐标。
* @param y Y轴坐标。
* @param z Z轴坐标。
* @param w W轴坐标。
*/
constructor(x?: number, y?: number, z?: number, w?: number);
/**
* 从一个四维向量复制。
* @param v 源向量。
*/
copyFrom(v: Vector4): Vector4;
}
}
declare module laya.d3.math {
/**
* Viewport
类用于创建视口。
*/
class Viewport {
private static _tempMatrix4x4;
/**X轴坐标*/
x: number;
/**Y轴坐标*/
y: number;
/**宽度*/
width: number;
/**高度*/
height: number;
/**最小深度*/
minDepth: number;
/**最大深度*/
maxDepth: number;
/**
* 创建一个 Viewport
实例。
* @param x x坐标。
* @param y y坐标。
* @param width 宽度。
* @param height 高度。
*/
constructor(x: number, y: number, width: number, height: number);
/**
* 变换一个三维向量。
* @param source 源三维向量。
* @param matrix 变换矩阵。
* @param vector 输出三维向量。
*/
project(source: Vector3, matrix: Matrix4x4, out: Vector3): void;
/**
* 反变换一个三维向量。
* @param source 源三维向量。
* @param matrix 变换矩阵。
* @param vector 输出三维向量。
*/
unprojectFromMat(source: Vector3, matrix: Matrix4x4, out: Vector3): void;
/**
* 反变换一个三维向量。
* @param source 源三维向量。
* @param projection 透视投影矩阵。
* @param view 视图矩阵。
* @param world 世界矩阵,可设置为null。
* @param out 输出向量。
*/
unprojectFromWVP(source: Vector3, projection: Matrix4x4, view: Matrix4x4, world: Matrix4x4, out: Vector3): void;
}
}
declare module laya.d3.resource {
/**
* BaseTexture
纹理的父类,抽象类,不允许实例。
*/
class BaseTexture extends laya.resource.Resource {
protected _width: number;
protected _height: number;
protected _size: laya.d3.utils.Size;
protected _repeat: boolean;
protected _mipmap: boolean;
protected _minFifter: number;
protected _magFifter: number;
protected _source: any;
protected _loaded: boolean;
/**
* 获取宽度。
*/
width: number;
/**
* 获取高度。
*/
height: number;
/**
* 获取尺寸。
*/
size: laya.d3.utils.Size;
/**
* 是否使用重复模式纹理寻址
*/
repeat: boolean;
/**
* 是否使用mipLevel
*/
mipmap: boolean;
/**\
* 缩小过滤器
*/
minFifter: number;
/**
* 放大过滤器
*/
magFifter: number;
/**
* 获取纹理资源。
*/
source: any;
/**
* 表示是否加载成功,只能表示初次载入成功(通常包含下载和载入),并不能完全表示资源是否可立即使用(资源管理机制释放影响等)。
*/
loaded: boolean;
/**
* 创建一个 BaseTexture
实例。
*/
constructor();
}
}
declare module laya.d3.resource.models {
/**
* BaseMesh
类用于创建网格,抽象类,不允许实例。
*/
class BaseMesh extends laya.resource.Resource {
protected _loaded: boolean;
protected _subMeshCount: number;
protected _boundingBox: laya.d3.math.BoundBox;
protected _boundingSphere: laya.d3.math.BoundSphere;
/**
* 获取是否已载入。
* @return 是否已载入。
*/
loaded: boolean;
/**
* 获取SubMesh的个数。
* @return SubMesh的个数。
*/
subMeshCount: number;
/**
* 获取AABB包围盒。
* @return AABB包围盒。
*/
boundingBox: laya.d3.math.BoundBox;
/**
* 获取包围球。
* @return 包围球。
*/
boundingSphere: laya.d3.math.BoundSphere;
/**
* 获取网格顶点,请重载此方法。
* @return 网格顶点。
*/
positions: ArrayBaseMesh
实例。
*/
constructor();
/**
* 获取渲染单元数量,请重载此方法。
* @return 渲染单元数量。
*/
getRenderElementsCount(): number;
/**
* 获取渲染单元,请重载此方法。
* @param index 索引。
* @return 渲染单元。
*/
getRenderElement(index: number): laya.d3.core.render.IRenderable;
}
}
declare module laya.d3.resource.models {
/**
* Sphere
类用于创建球体。
*/
class BoxMesh extends PrimitiveMesh {
/**
* 返回长度
* @return 长
*/
/**
* 设置长度(改变此属性会重新生成顶点和索引)
* @param value 长度
*/
long: number;
/**
* 返回宽度
* @return 宽
*/
/**
* 设置宽度(改变此属性会重新生成顶点和索引)
* @param value 宽度
*/
width: number;
/**
* 返回高度
* @return 高
*/
/**
* 设置高度(改变此属性会重新生成顶点和索引)
* @param value 高度
*/
height: number;
/**
* 创建一个球体模型
* @param radius 半径
* @param stacks 水平层数
* @param slices 垂直层数
*/
constructor(long?: number, width?: number, height?: number);
protected recreateResource(): void;
}
}
declare module laya.d3.resource.models {
/**
* MeshCylinder
类用于创建圆柱。
*/
class CylinderMesh extends PrimitiveMesh {
/**
* 返回半径
* @return 半径
*/
/**
* 设置半径(改变此属性会重新生成顶点和索引)
* @param value 半径
*/
radius: number;
/**
* 获取宽度分段
* @return 宽度分段
*/
/**
* 设置宽度分段(改变此属性会重新生成顶点和索引)
* @param value 宽度分段
*/
slices: number;
/**
* 获取高度分段
* @return 高度分段
*/
/**
* 设置高度分段(改变此属性会重新生成顶点和索引)
* @param value高度分段
*/
stacks: number;
/**
* 创建一个球体模型
* @param radius 半径
* @param stacks 水平层数
* @param slices 垂直层数
*/
constructor(radius?: number, height?: number, stacks?: number, slices?: number);
protected recreateResource(): void;
}
}
declare module laya.d3.resource.models {
/**
* Mesh
类用于创建文件网格数据模板。
*/
class Mesh extends BaseMesh {
/**
* 加载网格模板。
* @param url 模板地址。
*/
static load(url: string): Mesh;
_bindPoses: ArrayMesh
实例,禁止使用。
* @param url 文件地址。
*/
constructor();
/**
* 添加子网格(开发者禁止修改)。
* @param subMesh 子网格。
*/
_add(subMesh: SubMesh): void;
/**
* 移除子网格(开发者禁止修改)。
* @param subMesh 子网格。
* @return 是否成功。
*/
_remove(subMesh: SubMesh): boolean;
/**
* 获得子网格。
* @param index 子网格索引。
* @return 子网格。
*/
getSubMesh(index: number): SubMesh;
/**
* 获得子网格数量。
* @return 子网格数量。
*/
getSubMeshCount(): number;
getRenderElementsCount(): number;
getRenderElement(index: number): laya.d3.core.render.IRenderable;
/**
* PrimitiveMesh
类用于创建基本网格的父类。
*/
class PrimitiveMesh extends BaseMesh implements laya.d3.core.render.IRenderable {
protected _numberVertices: number;
protected _numberIndices: number;
protected _vertexBuffer: laya.d3.graphics.VertexBuffer3D;
protected _indexBuffer: laya.d3.graphics.IndexBuffer3D;
_indexOfHost: number;
indexOfHost: number;
_vertexBufferCount: number;
triangleCount: number;
_getVertexBuffer(index?: number): laya.d3.graphics.VertexBuffer3D;
_getIndexBuffer(): laya.d3.graphics.IndexBuffer3D;
/**
* 获取网格顶点
* @return 网格顶点。
*/
positions: ArraySky
类用于创建天空的父类,抽象类不允许实例。
*/
class Sky extends laya.resource.Resource {
constructor();
_render(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.resource.models {
/**
* Sky
类用于创建天空盒。
*/
class SkyBox extends Sky {
private static _tempMatrix4x40;
private static _tempMatrix4x41;
private static _nameNumber;
protected _shaderValue: laya.webgl.utils.ValusArray;
protected _sharderNameID: number;
protected _shader: laya.webgl.shader.Shader;
protected _numberVertices: number;
protected _numberIndices: number;
/**
* 获取透明混合度。
* @return 透明混合度。
*/
/**
* 设置透明混合度。
* @param value 透明混合度。
*/
alphaBlending: number;
/**
* 获取颜色强度。
* @return 颜色强度。
*/
/**
* 设置颜色强度。
* @param value 颜色强度。
*/
colorIntensity: number;
/**
* 获取天空立方体纹理。
* @return 天空立方体纹理。
*/
/**
* 设置天空立方体纹理。
* @param value 天空立方体纹理。
*/
textureCube: laya.d3.resource.TextureCube;
/**
* 创建一个 SkyBox
实例。
*/
constructor();
protected _getShader(state: laya.d3.core.render.RenderState): laya.webgl.shader.Shader;
protected recreateResource(): void;
protected loadShaderParams(): void;
_render(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.resource.models {
/**
* Sky
类用于创建天空盒。
*/
class SkyDome extends Sky {
private static _tempMatrix4x40;
private static _tempMatrix4x41;
private static _nameNumber;
protected _shaderValue: laya.webgl.utils.ValusArray;
protected _sharderNameID: number;
protected _shader: laya.webgl.shader.Shader;
protected _numberVertices: number;
protected _numberIndices: number;
/**
* 获取透明混合度。
* @return 透明混合度。
*/
/**
* 设置透明混合度。
* @param value 透明混合度。
*/
alphaBlending: number;
/**
* 获取颜色强度。
* @return 颜色强度。
*/
/**
* 设置颜色强度。
* @param value 颜色强度。
*/
colorIntensity: number;
/**
* 获取天空立方体纹理。
* @return 天空立方体纹理。
*/
/**
* 设置天空立方体纹理。
* @param value 天空立方体纹理。
*/
texture: laya.d3.resource.Texture2D;
/**
* 创建一个 SkyBox
实例。
*/
constructor();
protected _getShader(state: laya.d3.core.render.RenderState): laya.webgl.shader.Shader;
protected recreateResource(): void;
protected loadShaderParams(): void;
_render(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.resource.models {
/**
* Sphere
类用于创建球体。
*/
class SphereMesh extends PrimitiveMesh {
/**
* 返回半径
* @return 半径
*/
/**
* 设置半径(改变此属性会重新生成顶点和索引)
* @param value 半径
*/
radius: number;
/**
* 获取宽度分段
* @return 宽度分段
*/
/**
* 设置宽度分段(改变此属性会重新生成顶点和索引)
* @param value 宽度分段
*/
slices: number;
/**
* 获取高度分段
* @return 高度分段
*/
/**
* 设置高度分段(改变此属性会重新生成顶点和索引)
* @param value高度分段
*/
stacks: number;
/**
* 创建一个球体模型
* @param radius 半径
* @param stacks 水平层数
* @param slices 垂直层数
*/
constructor(radius?: number, stacks?: number, slices?: number);
protected recreateResource(): void;
}
}
declare module laya.d3.resource.models {
/**
* SubMesh
类用于创建子网格数据模板。
*/
class SubMesh implements laya.d3.core.render.IRenderable, laya.resource.IDispose {
_indexBuffer: laya.d3.graphics.IndexBuffer3D;
_vertexBuffer: laya.d3.graphics.VertexBuffer3D;
_boneIndices: Uint8Array;
_bufferUsage: any;
_indexInMesh: number;
/**
* @private
*/
_vertexBufferCount: number;
/**
* @private
*/
indexOfHost: number;
/**
* @private
*/
triangleCount: number;
/**
* 创建一个 SubMesh
实例。
* @param mesh 网格数据模板。
*/
constructor();
/**
* @private
*/
_getVertexBuffer(index?: number): laya.d3.graphics.VertexBuffer3D;
/**
* @private
*/
_getIndexBuffer(): laya.d3.graphics.IndexBuffer3D;
/**
* @private
*/
_beforeRender(state: laya.d3.core.render.RenderState): boolean;
/**
* @private
* 渲染。
* @param state 渲染状态。
*/
_render(state: laya.d3.core.render.RenderState): void;
/**
* RenderTarget
类用于创建渲染目标。
*/
class RenderTexture extends BaseTexture {
private static _currentRenderTarget;
/**
* 获取表面格式。
*@return 表面格式。
*/
surfaceFormat: number;
/**
* 获取表面类型。
*@return 表面类型。
*/
surfaceType: number;
/**
* 获取深度格式。
*@return 深度格式。
*/
depthStencilFormat: number;
frameBuffer: any;
depthStencilBuffer: any;
/**
* 获取RenderTarget数据源,如果alreadyResolved等于false,则返回null。
* @return RenderTarget数据源。
*/
source: any;
/**
* 创建一个 RenderTarget
实例。
* @param width 宽度。
* @param height 高度。
* @param mipMap 是否生成mipMap。
* @param surfaceFormat 表面格式。
* @param surfaceType 表面类型。
* @param depthFormat 深度格式。
*/
constructor(width: number, height: number, surfaceFormat?: number, surfaceType?: number, depthStencilFormat?: number, mipMap?: boolean, repeat?: boolean, minFifter?: number, magFifter?: number);
protected recreateResource(): void;
/**
* 开始绑定。
*/
start(): void;
/**
* 结束绑定。
*/
end(): void;
/**
* 获得像素数据。
* @param x X像素坐标。
* @param y Y像素坐标。
* @param width 宽度。
* @param height 高度。
* @return 像素数据。
*/
getData(x: number, y: number, width: number, height: number): Uint8Array;
protected detoryResource(): void;
}
}
declare module laya.d3.resource {
/**
* SolidColorTexture2D
二维纯色纹理。
*/
class SolidColorTexture2D extends BaseTexture {
static pickTexture: SolidColorTexture2D;
source: any;
/**
* 创建一个 SolidColorTexture2D
实例。
*/
constructor(color: laya.d3.math.Vector4);
protected recreateResource(): void;
protected detoryResource(): void;
}
}
declare module laya.d3.resource.tempelet {
/**
* @private
* GlitterTemplet
类用于创建闪光数据模板。
*/
class GlitterTemplet extends laya.events.EventDispatcher implements laya.d3.core.render.IRenderable {
_albedo: laya.d3.math.Vector4;
_currentTime: number;
setting: laya.d3.core.glitter.GlitterSetting;
indexOfHost: number;
_vertexBufferCount: number;
triangleCount: number;
_getVertexBuffer(index?: number): laya.d3.graphics.VertexBuffer3D;
_getIndexBuffer(): laya.d3.graphics.IndexBuffer3D;
constructor(owner: laya.d3.core.glitter.Glitter, setting: laya.d3.core.glitter.GlitterSetting);
_onEnableChanged(enable: boolean): void;
/**
* @private
* 更新闪光。
* @param elapsedTime 间隔时间
*/
_update(elapsedTime: number): void;
_beforeRender(state: laya.d3.core.render.RenderState): boolean;
/**
* @private
* 渲染闪光。
* @param state 相关渲染状态
*/
_render(state: laya.d3.core.render.RenderState): void;
/**
* 通过位置添加刀光。
* @param position0 位置0。
* @param position1 位置1。
*/
addVertexPosition(position0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3): void;
/**
* 通过位置和速度添加刀光。
* @param position0 位置0。
* @param velocity0 速度0。
* @param position1 位置1。
* @param velocity1 速度1。
*/
addVertexPositionVelocity(position0: laya.d3.math.Vector3, velocity0: laya.d3.math.Vector3, position1: laya.d3.math.Vector3, velocity1: laya.d3.math.Vector3): void;
dispose(): void;
}
}
declare module laya.d3.resource.tempelet {
/**
* @private
* ParticleTemplet3D
类用于创建3D粒子数据模板。
*/
class ParticleTemplet3D extends laya.particle.ParticleTemplateWebGL implements laya.d3.core.render.IRenderable {
indexOfHost: number;
_vertexBufferCount: number;
triangleCount: number;
_getVertexBuffer(index?: number): laya.d3.graphics.VertexBuffer3D;
_getIndexBuffer(): laya.d3.graphics.IndexBuffer3D;
constructor(owner: laya.d3.core.particle.Particle3D, setting: laya.particle.ParticleSetting);
addParticle(position: laya.d3.math.Vector3, velocity: laya.d3.math.Vector3): void;
protected loadContent(): void;
addNewParticlesToVertexBuffer(): void;
_beforeRender(state: laya.d3.core.render.RenderState): boolean;
_render(state: laya.d3.core.render.RenderState): void;
}
}
declare module laya.d3.resource {
/**
* Texture2D
二维纹理。
*/
class Texture2D extends BaseTexture {
/**
* 获取文件路径全名。
*/
src: string;
/**
* 创建一个 Texture2D
实例。
*/
constructor(src: string);
protected recreateResource(): void;
protected detoryResource(): void;
}
}
declare module laya.d3.resource {
class TextureCube extends BaseTexture {
protected _srcs: ArrayShaderDefines3D
类用于创建3DshaderDefine相关。
*/
class ShaderDefines3D extends laya.webgl.shader.ShaderDefines {
static DIFFUSEMAP: number;
static NORMALMAP: number;
static SPECULARMAP: number;
static EMISSIVEMAP: number;
static AMBIENTMAP: number;
static REFLECTMAP: number;
static VR: number;
static FSHIGHPRECISION: number;
static UVTRANSFORM: number;
static MIXUV: number;
static FOG: number;
static UV: number;
static COLOR: number;
static DIRECTIONLIGHT: number;
static POINTLIGHT: number;
static SPOTLIGHT: number;
static BONE: number;
static SKINNED: number;
static ALPHATEST: number;
static PARTICLE3D: number;
private static _name2int;
private static _int2name;
private static _int2nameMap;
static __init__(): void;
constructor();
static reg(name: string, value: number): void;
static toText(value: number, _int2name: ArrayPicker
类用于创建拾取。
*/
class Picker {
private static _tempVector30;
private static _tempVector31;
private static _tempVector32;
private static _tempVector33;
private static _tempVector34;
private static _tempVector35;
private static _tempVector36;
private static _tempVector37;
/**
* 创建一个 Picker
实例。
*/
constructor();
/**
* 计算鼠标生成的射线。
* @param point 鼠标位置。
* @param viewPort 视口。
* @param projectionMatrix 透视投影矩阵。
* @param viewMatrix 视图矩阵。
* @param world 世界偏移矩阵。
* @return out 输出射线。
*/
static calculateCursorRay(point: laya.d3.math.Vector2, viewPort: laya.d3.math.Viewport, projectionMatrix: laya.d3.math.Matrix4x4, viewMatrix: laya.d3.math.Matrix4x4, world: laya.d3.math.Matrix4x4, out: laya.d3.math.Ray): void;
/**
* 计算射线和三角形碰撞并返回碰撞三角形和碰撞距离。
* @param ray 射线。
* @param positions 顶点数据。
* @param indices 索引数据。
* @param outVertex0 输出三角形顶点0。
* @param outVertex1 输出三角形顶点1。
* @param outVertex2 输出三角形顶点2。
* @return 射线距离三角形的距离,返回Number.NaN则不相交。
*/
static rayIntersectsPositionsAndIndices(ray: laya.d3.math.Ray, vertexDatas: Float32Array, vertexDeclaration: laya.d3.graphics.VertexDeclaration, indices: Uint16Array, outHitInfo: RaycastHit): boolean;
/**
* 计算射线和三角形碰撞并返回碰撞距离。
* @param ray 射线。
* @param vertex1 顶点1。
* @param vertex2 顶点2。
* @param vertex3 顶点3。
* @return 射线距离三角形的距离,返回Number.NaN则不相交。
*/
static rayIntersectsTriangle(ray: laya.d3.math.Ray, vertex1: laya.d3.math.Vector3, vertex2: laya.d3.math.Vector3, vertex3: laya.d3.math.Vector3): number;
}
}
declare module laya.d3.utils {
/**
* ...
* @author ...
*/
class RaycastHit {
distance: number;
trianglePositions: ArrayUtils3D
类用于创建3D工具。
*/
class Utils3D {
private static _tempVector3_0;
private static _tempVector3_1;
private static _tempVector3_2;
private static _tempVector3_3;
private static _tempVector3_4;
private static _tempVector3_5;
private static _tempVector3_6;
private static _tempArray4_0;
private static _tempArray16_0;
private static _tempArray16_1;
private static _tempArray16_2;
private static _tempArray16_3;
static _parseHierarchyProp(node: laya.d3.core.Sprite3D, prop: string, value: Arraysupported
查看浏览器支持。
*/
class Geolocation {
private static navigator;
private static position;
/**
* 由于权限被拒绝造成的地理信息获取失败。
*/
static PERMISSION_DENIED: number;
/**
* 由于内部位置源返回了内部错误导致地理信息获取失败。
*/
static POSITION_UNAVAILABLE: number;
/**
* 信息获取所用时长超出timeout
所设置时长。
*/
static TIMEOUT: number;
/**
* 是否支持。
*/
static supported: boolean;
/**
* 如果enableHighAccuracy
为true,并且设备能够提供一个更精确的位置,则会获取最佳可能的结果。
* 请注意,这可能会导致较慢的响应时间或增加电量消耗(如使用GPS)。
* 另一方面,如果设置为false,将会得到更快速的响应和更少的电量消耗。
* 默认值为false。
*/
static enableHighAccuracy: boolean;
static timeout: number;
/**
* 表示可被返回的缓存位置信息的最大时限。
* 如果设置为0,意味着设备不使用缓存位置,并且尝试获取实时位置。
* 如果设置为Infinity,设备必须返回缓存位置而无论其时限。
*/
static maximumAge: number;
constructor();
/**
* 获取设备当前位置。
* @param onSuccess 带有唯一Position
参数的回调处理器。
* @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
*/
static getCurrentPosition(onSuccess: laya.utils.Handler, onError?: laya.utils.Handler): void;
/**
* 监视设备当前位置。回调处理器在设备位置改变时被执行。
* @param onSuccess 带有唯一Position
参数的回调处理器。
* @param onError 可选的。带有错误信息的回调处理器。错误代码为Geolocation.PERMISSION_DENIED、Geolocation.POSITION_UNAVAILABLE和Geolocation.TIMEOUT之一。
*/
static watchPosition(onSuccess: laya.utils.Handler, onError: laya.utils.Handler): number;
/**
* 移除watchPosition
安装的指定处理器。
* @param id
*/
static clearWatch(id: number): void;
}
}
declare module laya.device.geolocation {
class GeolocationInfo {
setPosition(pos: any): void;
latitude: number;
longitude: number;
altitude: number;
accuracy: number;
altitudeAccuracy: number;
heading: number;
speed: number;
timestamp: number;
}
}
declare module laya.device.media {
/**
* @private
*/
class HtmlVideo extends laya.resource.Bitmap {
protected video: any;
constructor();
static create: Function;
setSource(url: string, extension: number): void;
getVideo(): any;
}
}
declare module laya.device.media {
/**
* Media用于捕捉摄像头和麦克风。可以捕捉任意之一,或者同时捕捉两者。getCamera
前可以使用supported()
检查当前浏览器是否支持。
* NOTE:
*
* @param onSuccess 获取成功的处理器,唯一参数返回媒体的Blob地址,可以将其传给Video。
* @param onError 获取失败的处理器,唯一参数是Error。
*/
static getMedia(options: any, onSuccess: laya.utils.Handler, onError: laya.utils.Handler): void;
}
}
declare module laya.device.media {
/**
*
Video
将视频显示到Canvas上。Video
可能不会在所有浏览器有效。
*
* 在PC端可以在任何时机调用play()
因此,可以在程序开始运行时就使Video开始播放。但是在移动端,只有在用户第一次触碰屏幕后才可以调用play(),所以移动端不可能在程序开始运行时就自动开始播放Video。
*
*
*/
readyState: any;
/**
* 获取视频源尺寸。ready事件触发后可用。
*/
videoWidth: number;
videoHeight: number;
/**
* 获取视频长度(秒)。ready事件触发后可用。
*/
duration: number;
/**
* 返回音频/视频的播放是否已结束
*/
ended: boolean;
/**
* 返回表示音频/视频错误状态的 MediaError(JS)对象。
*/
error: boolean;
/**
* 设置或返回音频/视频是否应在结束时重新播放。
*/
loop: boolean;
/**
* playbackRate 属性设置或返回音频/视频的当前播放速度。如:
*
*
*
*
* @return
*
*/
preload: string;
/**
* 参见 http://www.w3school.com.cn/tags/av_prop_seekable.asp。
* @return
*
*/
seekable: any;
/**
* seeking 属性返回用户目前是否在音频/视频中寻址。
* 寻址中(Seeking)指的是用户在音频/视频中移动/跳跃到新的位置。
*/
seeking: boolean;
height: number;
size(width: number, height: number): laya.display.Sprite;
width: number;
/**
* 销毁内部事件绑定。
*/
destroy(detroyChildren?: boolean): void;
}
}
declare module laya.device.media {
/**
* @private
*/
class WebGLVideo extends laya.device.media.HtmlVideo {
constructor();
updateTexture(): void;
}
}
declare module laya.device.motion {
/**
* 加速度x/y/z的单位均为m/s²。
* 在硬件(陀螺仪)不支持的情况下,alpha、beta和gamma值为null。
*
* @author Survivor
*/
class AccelerationInfo {
/**
* x轴上的加速度值。
*/
x: number;
/**
* y轴上的加速度值。
*/
y: number;
/**
* z轴上的加速度值。
*/
z: number;
constructor();
}
}
declare module laya.device.motion {
/**
* Accelerator.instance获取唯一的Accelerator引用,请勿调用构造函数。
*
*
*
*
* NOTE
* 如,rotationRate的alpha在apple和moz文档中都是z轴旋转角度,但是实测是x轴旋转角度。为了使各属性表示的值与文档所述相同,实际值与其他属性进行了对调。
* 其中:
*
* listen()的回调处理器接受两个参数:
* function onOrientationChange(absolute:Boolean, info:RotationInfo):void
*
RotationInfo
类型参数,保存设备的旋转值。* 浏览器兼容性参见:http://caniuse.com/#search=deviceorientation *
*/ class Gyroscope extends laya.events.EventDispatcher { private static info; private static _instance; static instance: Gyroscope; constructor(singleton: number); /** * 监视陀螺仪运动。 * @param observer 回调函数接受一个Boolean类型的absolute
和GyroscopeInfo
类型参数。
*/
on(type: string, caller: any, listener: Function, args?: Array* 指示设备是否可以提供绝对方位数据(指向地球坐标系),或者设备决定的任意坐标系。 * 关于坐标系参见https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Orientation_and_motion_data_explained。 *
* 需要注意的是,IOS环境下,该值始终为false。即使如此,你依旧可以从alpha
中取得正确的值。
*/
absolute: boolean;
/**
* Z轴旋转角度,其值范围从0至360。
* 若absolute
为true或者在IOS中,alpha值是从北方到当前设备方向的角度值。
*/
alpha: number;
/**
* X轴旋转角度, 其值范围从-180至180。代表设备从前至后的运动。
*/
beta: number;
/**
* Y轴旋转角度,其值范围从-90至90。代表设备从左至右的运动。
*/
gamma: number;
/**
* 罗盘数据的精确度(角度)。仅IOS可用。
*/
compassAccuracy: number;
constructor();
}
}
declare module laya.device {
/**
* Shake只能在支持此操作的设备上有效。
*
* @author Survivor
*/
class Shake extends laya.events.EventDispatcher {
constructor();
private static _instance;
static instance: Shake;
/**
* 开始响应设备摇晃。
* @param throushold 响应的瞬时速度阈值,轻度摇晃的值约在5~10间。
* @param timeout 设备摇晃的响应间隔时间。
* @param callback 在设备摇晃触发时调用的处理器。
*/
start(throushold: number, interval: number): void;
/**
* 停止响应设备摇晃。
*/
stop(): void;
}
}
declare module laya.display {
/**
* Animation
类是位图动画,用于创建位图动画。
Animation
类可以加载并显示一组位图图片,并组成动画进行播放。
Text
实例。
* Animation
实例。
*/
constructor();
/** @inheritDoc */
destroy(destroyChild?: boolean): void;
/**
* 播放动画。
* @param start 开始播放的动画索引或label。
* @param loop 是否循环。
* @param name 如果name为空(可选),则播放当前动画,如果不为空,则播放全局缓存动画(如果有)
*/
play(start?: any, loop?: boolean, name?: string): void;
protected _setFramesFromCache(name: string): boolean;
protected _frameLoop(): void;
protected _displayToIndex(value: number): void;
/**Graphics集合*/
frames: ArrayBitmapFont
是位图字体类,用于定义位图字体信息。
*/
class BitmapFont {
/**当前位图字体字号。*/
fontSize: number;
/**表示是否根据实际使用的字体大小缩放位图字体大小。*/
autoScaleSize: boolean;
/**
* 通过指定位图字体文件路径,加载位图字体文件。
* @param path 位图字体文件的路径。
* @param complete 加载完成的回调,通知上层字体文件已经完成加载并解析。
*/
loadFont(path: string, complete: laya.utils.Handler): void;
/**
* 解析字体文件。
* @param xml 字体文件XML。
* @param texture 字体的纹理。
*/
parseFont(xml: any, texture: laya.resource.Texture): void;
/**
* 获取指定字符的字体纹理对象。
* @param char 字符。
* @return 指定的字体纹理对象。
*/
getCharTexture(char: string): laya.resource.Texture;
/**
* 销毁位图字体,调用Text.unregisterBitmapFont 时,默认会销毁。
*/
destroy(): void;
/**
* 设置空格的宽(如果字体库有空格,这里就可以不用设置了)。
* @param spaceWidth 宽度,单位为像素。
*/
setSpaceWidth(spaceWidth: number): void;
/**
* 获取指定字符的宽度。
* @param char 字符。
* @return 宽度。
*/
getCharWidth(char: string): number;
/**
* 获取指定文本内容的宽度。
* @param text 文本内容。
* @return 宽度。
*/
getTextWidth(text: string): number;
/**
* 获取字符之间的间距(以像素为单位)。
*/
/**
* 设置字符之间的间距(以像素为单位)。
*/
letterSpacing: number;
/**
* 获取最大字符宽度。
*/
getMaxWidth(): number;
/**
* 获取最大字符高度。
*/
getMaxHeight(): number;
/**
* @private
* 将指定的文本绘制到指定的显示对象上。
*/
drawText(text: string, sprite: Sprite, drawX: number, drawY: number, align: string, width: number): void;
}
}
declare module laya.display.css {
/**
* @private
* CSSStyle
类是元素CSS样式定义类。
*/
class CSSStyle extends laya.display.css.Style {
static EMPTY: CSSStyle;
private static _CSSTOVALUE;
private static _parseCSSRegExp;
private static _aligndef;
private static _valigndef;
/**
* 样式表信息。
*/
static styleSheets: any;
/**水平居中对齐方式。 */
static ALIGN_CENTER: number;
/**水平居右对齐方式。 */
static ALIGN_RIGHT: number;
/**垂直居中对齐方式。 */
static VALIGN_MIDDLE: number;
/**垂直居底部对齐方式。 */
static VALIGN_BOTTOM: number;
private static _PADDING;
private static _RECT;
private static _SPACING;
private static _ALIGNS;
/**添加布局。 */
static ADDLAYOUTED: number;
/**
* 是否显示为块级元素。
*/
block: boolean;
/**行高。 */
lineHeight: number;
/**
* 创建一个新的 CSSStyle
类实例。
* @param ower 当前 CSSStyle 对象的拥有者。
*/
constructor(ower: laya.display.Sprite);
/**@inheritDoc */
destroy(): void;
/**
* 复制传入的 CSSStyle 属性值。
* @param src 待复制的 CSSStyle 对象。
*/
inherit(src: CSSStyle): void;
_widthAuto(): boolean;
/**@inheritDoc */
widthed(sprite: any): boolean;
/**
* 宽度。
*/
width: any;
/**
* 高度。
*/
height: any;
/**
* 是否已设置高度。
* @param sprite 显示对象 Sprite。
* @return 一个Boolean 表示是否已设置高度。
*/
heighted(sprite: any): boolean;
/**
* 设置宽高。
* @param w 宽度。
* @param h 高度。
*/
size(w: number, h: number): void;
/**
* 表示左边距。
*/
left: any;
/**
* 表示上边距。
*/
top: any;
/**
* 边距信息。
*/
padding: Array指定文本字段是否是密码文本字段。
* 如果此属性的值为 true,则文本字段被视为密码文本字段,并使用星号而不是实际字符来隐藏输入的字符。如果为 false,则不会将文本字段视为密码文本字段。 */ password: boolean; /** * 字体信息。 */ font: string; /** * 文本的粗细。 */ weight: string; /** * 间距。 */ letterSpacing: number; /** * 字体大小。 */ fontSize: number; /** * 行间距。 */ leading: number; /** * 表示是否为斜体。 */ italic: boolean; /** * 字体系列。 */ fontFamily: string; /** * 字体粗细。 */ fontWeight: string; /** * 添加到文本的修饰。 */ textDecoration: string; /** * 字体颜色。 */ color: string; /** *描边宽度(以像素为单位)。
* 默认值0,表示不描边。 * @default 0 */ stroke: number; /** *描边颜色,以字符串表示。
* @default "#000000"; */ strokeColor: string; /** * 边框属性。 */ border: string; /** * 边框的颜色。 */ borderColor: string; /** * 背景颜色。 */ backgroundColor: string; background: string; /**@inheritDoc */ render(sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): void; /**@inheritDoc */ getCSSStyle(): CSSStyle; /** * 设置 CSS 样式字符串。 * @param text CSS样式字符串。 */ cssText(text: string): void; /** * 根据传入的属性名、属性值列表,设置此对象的属性值。 * @param attrs 属性名与属性值列表。 */ attrs(attrs: ArrayFont
类是字体显示定义类。
*/
class Font {
/**
* 一个默认字体 Font
对象。
*/
static EMPTY: Font;
/**
* 默认的颜色。
*/
static defaultColor: string;
/**
* 默认字体大小。
*/
static defaultSize: number;
/**
* 默认字体名称系列。
*/
static defaultFamily: string;
/**
* 默认字体属性。
*/
static defaultFont: string;
static _STROKE: ArrayFont
类实例。
* @param src 将此 Font 的成员属性值复制给当前 Font 对象。
*/
constructor(src: Font);
/**
* 字体样式字符串。
*/
set(value: string): void;
/**
* 表示颜色字符串。
*/
color: string;
/**
* 表示是否为斜体。
*/
italic: boolean;
/**
* 表示是否为粗体。
*/
bold: boolean;
/**
* 表示是否为密码格式。
*/
password: boolean;
/**
* 返回字体样式字符串。
* @return 字体样式字符串。
*/
toString(): string;
/**
* 文本的粗细。
*/
weight: string;
/**
* 规定添加到文本的修饰。
*/
decoration: string;
/**
* 将当前的属性值复制到传入的 Font
对象。
* @param dec 一个 Font 对象。
*/
copyTo(dec: Font): void;
}
}
declare module laya.display.css {
/**
* @private
* Style
类是元素样式定义类。
*/
class Style {
/** 一个默认样式 Style
对象。*/
static EMPTY: laya.display.css.Style;
protected static _TF_EMPTY: any;
_tf: any;
/**透明度。*/
alpha: number;
/**表示是否显示。*/
visible: boolean;
/**表示滚动区域。*/
scrollRect: laya.maths.Rectangle;
/**混合模式。*/
blendMode: string;
_type: number;
static __init__(): void;
protected static _createTransform(): any;
/**元素应用的 2D 或 3D 转换的值。该属性允许我们对元素进行旋转、缩放、移动或倾斜。*/
transform: any;
getTransform(): any;
setTransform(value: any): void;
/**定义转换,只是用 X 轴的值。*/
translateX: number;
setTranslateX(value: number): void;
/**定义转换,只是用 Y 轴的值。*/
translateY: number;
setTranslateY(value: number): void;
/**X 轴缩放值。*/
scaleX: number;
setScaleX(value: number): void;
/**Y 轴缩放值。*/
scaleY: number;
setScaleY(value: number): void;
/**定义旋转角度。*/
rotate: number;
setRotate(value: number): void;
/**定义沿着 X 轴的 2D 倾斜转换。*/
skewX: number;
setSkewX(value: number): void;
/**定义沿着 Y 轴的 2D 倾斜转换。*/
skewY: number;
setSkewY(value: number): void;
/**表示元素是否显示为块级元素。*/
block: boolean;
/**表示元素的左内边距。*/
paddingLeft: number;
/**表示元素的上内边距。*/
paddingTop: number;
/**是否为绝对定位。*/
absolute: boolean;
/**销毁此对象。*/
destroy(): void;
render(sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): void;
getCSSStyle(): laya.display.css.CSSStyle;
_enableLayout(): boolean;
}
}
declare module laya.display {
/**
* 关键帧动画播放类
*
*/
class FrameAnimation extends AnimationPlayerBase {
constructor();
private static _sortIndexFun;
/**
* @private
* id对象表
*/
_targetDic: any;
/**
* @private
* 动画数据
*/
_animationData: any;
/**
* @private
* 初始化动画数据
* @param targetDic 对象表
* @param animationData 动画数据
*
*/
_setUp(targetDic: any, animationData: any): void;
/**@inheritDoc */
clear(): void;
protected _displayToIndex(value: number): void;
protected _calculateNodeKeyFrames(node: any): void;
}
}
declare module laya.display {
/**
* @private
*/
class GraphicAnimation extends FrameAnimation {
animationList: ArrayGraphics
类用于创建绘图显示对象。
* @see laya.display.Sprite#graphics
*/
class Graphics {
private static _tempMatrix;
private static _initMatrix;
private static _tempPoints;
private static _tempMatrixArrays;
private static _tempCmds;
_sp: Sprite;
_one: ArrayGraphics
类实例。
*/
constructor();
/**
* 销毁此对象。
*/ destroy(): void; /** *清空绘制命令。
*/ clear(): void; /** * @private * 重绘此对象。 */ _repaint(): void; _isOnlyOne(): boolean; /** * @private * 命令流。 */ cmds: ArrayILayout
类是显示对象的布局接口。
*/
interface ILayout {
}
}
declare module laya.display {
/**
* Input
类用于创建显示对象以显示和输入文本。
Input
类实例。*/
constructor();
static __init__(): void;
/**
* 设置光标位置和选取字符。
* @param startIndex 光标起始位置。
* @param endIndex 光标结束位置。
*/
setSelection(startIndex: number, endIndex: number): void;
/**表示是否是多行输入框。*/
multiline: boolean;
/**
* 获取对输入框的引用实例。
*/
nativeInput: any;
/**@inheritDoc*/
render(context: laya.renders.RenderContext, x: number, y: number): void;
/**选中所有文本。*/
select(): void;
/**
* 表示焦点是否在显示对象上。
*/
focus: boolean;
/**@inheritDoc */
text: string;
changeText(text: string): void;
/**@inheritDoc */
color: string;
/**限制输入的字符。*/
restrict: string;
/**
* 是否可编辑。
*/
editable: boolean;
/**
* 字符数量限制,默认为10000。
* 设置字符数量限制时,小于等于0的值将会限制字符数量为10000。
*/
maxChars: number;
/**
* 设置输入提示符。
*/
prompt: string;
/**
* 设置输入提示符颜色。
*/
promptColor: string;
/**
* 输入框类型为Input静态常量之一。
* 平台兼容性参见http://www.w3school.com.cn/html5/html_5_form_input_types.asp。
*/
type: string;
inputElementXAdjuster: number;
inputElementYAdjuster: number;
asPassword: boolean;
}
}
declare module laya.display {
/**
* Node
类用于创建节点对象,节点是最基本的元素。
*/
class Node extends laya.events.EventDispatcher {
_childs: Array销毁此对象。
* @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。 */ destroy(destroyChild?: boolean): void; /** * 销毁所有子对象,不销毁自己本身。 */ destroyChildren(): void; /** * 添加子节点。 * @param node 节点对象 * @return 返回添加的节点 */ addChild(node: Node): Node; /** * 批量增加子节点 * @param ...args 无数子节点。 */ addChildren(...args: any[]): void; /** * 添加子节点到指定的索引位置。 * @param node 节点对象。 * @param index 索引位置。 * @return 返回添加的节点。 */ addChildAt(node: Node, index: number): Node; /** * 根据子节点对象,获取子节点的索引位置。 * @param node 子节点。 * @return 子节点所在的索引位置。 */ getChildIndex(node: Node): number; /** * 根据子节点的名字,获取子节点对象。 * @param name 子节点的名字。 * @return 节点对象。 */ getChildByName(name: string): Node; _get$P(key: string): any; _set$P(key: string, value: any): any; /** * 根据子节点的索引位置,获取子节点对象。 * @param index 索引位置 * @return 子节点 */ getChildAt(index: number): Node; /** * 设置子节点的索引位置。 * @param node 子节点。 * @param index 新的索引。 * @return 返回子节点本身。 */ setChildIndex(node: Node, index: number): Node; protected _childChanged(child?: Node): void; /** * 删除子节点。 * @param node 子节点 * @return 被删除的节点 */ removeChild(node: Node): Node; /** * 从父容器删除自己,如已经被删除不会抛出异常。 * @return 当前节点( Node )对象。 */ removeSelf(): Node; /** * 根据子节点名字删除对应的子节点对象,如果找不到不会抛出异常。 * @param name 对象名字。 * @return 查找到的节点( Node )对象。 */ removeChildByName(name: string): Node; /** * 根据子节点索引位置,删除对应的子节点对象。 * @param index 节点索引位置。 * @return 被删除的节点。 */ removeChildAt(index: number): Node; /** * 删除指定索引区间的所有子对象。 * @param beginIndex 开始索引。 * @param endIndex 结束索引。 * @return 当前节点对象。 */ removeChildren(beginIndex?: number, endIndex?: number): Node; /** * 替换子节点。 * @internal 将传入的新节点对象替换到已有子节点索引位置处。 * @param newNode 新节点。 * @param oldNode 老节点。 * @return 返回新节点。 */ replaceChild(newNode: Node, oldNode: Node): Node; /** * 子对象数量。 */ numChildren: number; /**父节点。*/ parent: Node; /**表示是否在显示列表中显示。是否在显示渲染列表中。*/ displayedInStage: boolean; _setDisplay(value: boolean): void; /** * 当前容器是否包含node
节点。
* @param node 某一个节点 Node
。
* @return 一个布尔值表示是否包含node
节点。
*/
contains(node: Node): boolean;
/**
* 定时重复执行某函数。
* @param delay 间隔时间(单位毫秒)。
* @param caller 执行域(this)。
* @param method 结束时的回调方法。
* @param args 回调参数。
* @param coverBefore 是否覆盖之前的延迟执行,默认为true。
*/
timerLoop(delay: number, caller: any, method: Function, args?: Array Sprite
类是基本显示列表构造块:一个可显示图形并且也可包含子项的显示列表节点。
Text
实例。
* 指定是否对使用了 scrollRect 的显示对象进行优化处理。
*默认为false(不优化)。
*当值为ture时:将对此对象使用了scrollRect 设定的显示区域以外的显示内容不进行渲染,以提高性能。
*/ optimizeScrollRect: boolean; /**@inheritDoc */ destroy(destroyChild?: boolean): void; /**根据zOrder进行重新排序。*/ updateZOrder(): void; /** * 指定显示对象是否缓存为静态图像。功能同cacheAs的normal模式。 */ cacheAsBitmap: boolean; /** * 开启自定义渲染,只有开启自定义渲染,才能使用customRender函数渲染 */ customRenderEnable: boolean; /** *指定显示对象是否缓存为静态图像,cacheAs时,子对象发生变化,会自动重新缓存,同时也可以手动调用reCache方法更新缓存。
* 建议把不经常变化的复杂内容缓存为静态图像,能极大提高渲染性能,有"none","normal"和"bitmap"三个值可选。 *注意:计算量较大,尽量少用。
* @return 矩形区域。 */ getBounds(): laya.maths.Rectangle; /** * 获取本对象在自己坐标系的矩形显示区域。 *注意:计算量较大,尽量少用。
* @return 矩形区域。 */ getSelfBounds(): laya.maths.Rectangle; /** * @private * 获取本对象在父容器坐标系的显示区域多边形顶点列表。 * 当显示对象链中有旋转时,返回多边形顶点列表,无旋转时返回矩形的四个顶点。 * @param ifRotate 之前的对象链中是否有旋转。 * @return 顶点列表。结构:[x1,y1,x2,y2,x3,y3,...]。 */ _boundPointsToParent(ifRotate?: boolean): ArrayGraphics
)的显示区域。
* @return 一个 Rectangle 对象,表示获取到的显示区域。
*/
getGraphicBounds(): laya.maths.Rectangle;
/**
* @private
* 获取自己坐标系的显示区域多边形顶点列表
* @param ifRotate 当前的显示对象链是否由旋转
* @return 顶点列表。结构:[x1,y1,x2,y2,x3,y3,...]。
*/
_getBoundPointsM(ifRotate?: boolean): ArraySprite
到 canvas
上。
* @param canvasWidth 画布宽度。
* @param canvasHeight 画布高度。
* @param x 绘制的 X 轴偏移量。
* @param y 绘制的 Y 轴偏移量。
* @return HTMLCanvas 对象。
*/
drawToCanvas(canvasWidth: number, canvasHeight: number, offsetX: number, offsetY: number): laya.resource.HTMLCanvas;
/**
* 自定义更新、呈现显示对象。
* 注意不要在此函数内增加或删除树节点,否则会树节点遍历照成影响。
* @param context 渲染的上下文引用。 * @param x X轴坐标。 * @param y Y轴坐标。 */ customRender(context: laya.renders.RenderContext, x: number, y: number): void; /** * @private * 应用滤镜。 */ _applyFilters(): void; /**滤镜集合。*/ filters: ArraySprite
对象用于加载并显示此图片。
* @param url 图片地址。
* @return 返回新的 Sprite
对象。
*/
static fromImage(url: string): Sprite;
/**cacheAs后,设置自己和父对象缓存失效。*/
repaint(): void;
/**
* @private
* 获取是否重新缓存。
* @return 如果重新缓存值为 true,否则值为 false。
*/
_needRepaint(): boolean;
protected _childChanged(child?: Node): void;
/**cacheAs时,设置所有父对象缓存失效。 */
parentRepaint(): void;
/** 对舞台 stage
的引用。*/
stage: Stage;
/** 手动设置的可点击区域,或者一个HitArea区域。*/
hitArea: any;
/**遮罩,可以设置一个对象或者图片,根据对象形状进行遮罩显示。
*【注意】遮罩对象坐标系是相对遮罩对象本身的,这个和flash机制不同*/
mask: Sprite;
/**
* 是否接受鼠标事件。
* 默认为false,如果监听鼠标事件,则会自动设置本对象及父节点的属性 mouseEnable 的值都为 true(如果父节点手动设置为false,则不会更改)。
* */
mouseEnabled: boolean;
/**
* 开始拖动此对象。
* @param area 拖动区域,此区域为当前对象注册点活动区域(不包括对象宽高),可选。
* @param hasInertia 鼠标松开后,是否还惯性滑动,默认为false,可选。
* @param elasticDistance 橡皮筋效果的距离值,0为无橡皮筋效果,默认为0,可选。
* @param elasticBackTime 橡皮筋回弹时间,单位为毫秒,默认为300毫秒,可选。
* @param data 拖动事件携带的数据,可选。
* @param disableMouseEvent 禁用其他对象的鼠标检测,默认为false,设置为true能提高性能
*/
startDrag(area?: laya.maths.Rectangle, hasInertia?: boolean, elasticDistance?: number, elasticBackTime?: number, data?: any, disableMouseEvent?: boolean): void;
/**停止拖动此对象。*/
stopDrag(): void;
_setDisplay(value: boolean): void;
/**
* 检测某个点是否在此对象内。
* @param x 全局x坐标。
* @param y 全局y坐标。
* @return 表示是否在对象内。
*/
hitTestPoint(x: number, y: number): boolean;
/**获得相对于本对象上的鼠标坐标信息。*/
getMousePoint(): laya.maths.Point;
/**
* 获得全局X轴缩放值
*/
globalScaleX: number;
/**
* 获得全局Y轴缩放值
*/
globalScaleY: number;
/**
* 表示鼠标在此对象上的 X 轴坐标信息。
*/
mouseX: number;
/**
* 表示鼠标在此对象上的 Y 轴坐标信息。
*/
mouseY: number;
/** z排序,更改此值,按照值的大小进行显示层级排序。*/
zOrder: number;
_getWords(): Array Stage
类是显示对象的根节点。
缩放模式。
* Text
类用于创建显示对象以显示文本。
Text
实例。
* Text
实例。
*/
constructor();
/**
* 注册位图字体。
* @param name 位图字体的名称。
* @param bitmapFont 位图字体文件。
*/
static registerBitmapFont(name: string, bitmapFont: BitmapFont): void;
/**
* 移除注册的位图字体文件。
* @param name 位图字体的名称。
* @param destroy 是否销毁当前字体文件。
*/
static unregisterBitmapFont(name: string, destroy?: boolean): void;
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
/**
* @private
* @inheritDoc
*/
_getBoundPointsM(ifRotate?: boolean): Array根据指定的文本,从语言包中取当前语言的文本内容。并对此文本中的 *
例如: *
默认值为:"Arial",可以通过Text.defaultFont设置默认字体。
* * @see laya.display.css.Font#defaultFamily */ font: string; /** * 指定文本的字体大小(以像素为单位)。 *默认为20像素,可以通过 Text.defaultSize
设置默认大小。
默认值为 false,这意味着不使用粗体字。如果值为 true,则文本为粗体字。
*/ bold: boolean; /** * 表示文本的颜色值。可以通过Text.defaultColor
设置默认颜色。
* 默认值为黑色。
*/ color: string; /** * 表示使用此文本格式的文本是否为斜体。 *默认值为 false,这意味着不使用斜体。如果值为 true,则文本为斜体。
*/ italic: boolean; /** * 表示文本的水平显示方式。 *取值: *
取值: *
若值为true,则自动换行;否则不自动换行。
*/ wordWrap: boolean; /** * 垂直行间距(以像素为单位)。 */ leading: number; /** * 边距信息。 *数据格式:[上边距,右边距,下边距,左边距](边距以像素为单位)。
*/ padding: Array描边宽度(以像素为单位)。
* 默认值0,表示不描边。 */ stroke: number; /** *描边颜色,以字符串表示。
* 默认值为 "#000000"(黑色); */ strokeColor: string; protected isChanged: boolean; protected renderText(begin: number, visibleLineCount: number): void; /** *排版文本。
*进行宽高计算,渲染、重绘文本。
*/ typeset(): void; /** * 快速更改显示文本。不进行排版计算,效率较高。 *如果只更改文字内容,不更改文字样式,建议使用此接口,能提高效率。
* @param text 文本内容。 */ changeText(text: string): void; protected parseLines(text: string): void; protected parseLine(line: string, wordWrapWidth: number): void; /** * 返回字符的位置信息。 * @param charIndex 索引位置。 * @param out 输出的Point引用。 * @return 返回Point位置信息。 */ getCharPoint(charIndex: number, out?: laya.maths.Point): laya.maths.Point; /** * 获取横向滚动量。 */ /** * 设置横向滚动量。 *即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。
*/ scrollX: number; /** * 获取纵向滚动量。 */ /** * 设置纵向滚动量(px)。即使设置超出滚动范围的值,也会被自动限制在可能的最大值处。 */ scrollY: number; /** * 获取横向可滚动最大值。 */ maxScrollX: number; /** * 获取纵向可滚动最大值。 */ maxScrollY: number; lines: ArrayEvent
是事件类型的集合。
*/
class Event {
/** 一个空的 Event 对象。用于事件派发中转使用。*/
static EMPTY: Event;
/** 定义 mousedown 事件对象的 type 属性值。*/
static MOUSE_DOWN: string;
/** 定义 mouseup 事件对象的 type 属性值。*/
static MOUSE_UP: string;
/** 定义 click 事件对象的 type 属性值。*/
static CLICK: string;
/** 定义 rightmousedown 事件对象的 type 属性值。*/
static RIGHT_MOUSE_DOWN: string;
/** 定义 rightmouseup 事件对象的 type 属性值。*/
static RIGHT_MOUSE_UP: string;
/** 定义 rightclick 事件对象的 type 属性值。*/
static RIGHT_CLICK: string;
/** 定义 mousemove 事件对象的 type 属性值。*/
static MOUSE_MOVE: string;
/** 定义 mouseover 事件对象的 type 属性值。*/
static MOUSE_OVER: string;
/** 定义 mouseout 事件对象的 type 属性值。*/
static MOUSE_OUT: string;
/** 定义 mousewheel 事件对象的 type 属性值。*/
static MOUSE_WHEEL: string;
/** 定义 mouseover 事件对象的 type 属性值。*/
static ROLL_OVER: string;
/** 定义 mouseout 事件对象的 type 属性值。*/
static ROLL_OUT: string;
/** 定义 doubleclick 事件对象的 type 属性值。*/
static DOUBLE_CLICK: string;
/** 定义 change 事件对象的 type 属性值。*/
static CHANGE: string;
/** 定义 changed 事件对象的 type 属性值。*/
static CHANGED: string;
/** 定义 resize 事件对象的 type 属性值。*/
static RESIZE: string;
/** 定义 added 事件对象的 type 属性值。*/
static ADDED: string;
/** 定义 removed 事件对象的 type 属性值。*/
static REMOVED: string;
/** 定义 display 事件对象的 type 属性值。*/
static DISPLAY: string;
/** 定义 undisplay 事件对象的 type 属性值。*/
static UNDISPLAY: string;
/** 定义 error 事件对象的 type 属性值。*/
static ERROR: string;
/** 定义 complete 事件对象的 type 属性值。*/
static COMPLETE: string;
/** 定义 loaded 事件对象的 type 属性值。*/
static LOADED: string;
/** 定义 progress 事件对象的 type 属性值。*/
static PROGRESS: string;
/** 定义 input 事件对象的 type 属性值。*/
static INPUT: string;
/** 定义 render 事件对象的 type 属性值。*/
static RENDER: string;
/** 定义 open 事件对象的 type 属性值。*/
static OPEN: string;
/** 定义 message 事件对象的 type 属性值。*/
static MESSAGE: string;
/** 定义 close 事件对象的 type 属性值。*/
static CLOSE: string;
/** 定义 keydown 事件对象的 type 属性值。*/
static KEY_DOWN: string;
/** 定义 keypress 事件对象的 type 属性值。*/
static KEY_PRESS: string;
/** 定义 keyup 事件对象的 type 属性值。*/
static KEY_UP: string;
/** 定义 frame 事件对象的 type 属性值。*/
static FRAME: string;
/** 定义 dragstart 事件对象的 type 属性值。*/
static DRAG_START: string;
/** 定义 dragmove 事件对象的 type 属性值。*/
static DRAG_MOVE: string;
/** 定义 dragend 事件对象的 type 属性值。*/
static DRAG_END: string;
/** 定义 enter 事件对象的 type 属性值。*/
static ENTER: string;
/** 定义 select 事件对象的 type 属性值。*/
static SELECT: string;
/** 定义 blur 事件对象的 type 属性值。*/
static BLUR: string;
/** 定义 focus 事件对象的 type 属性值。*/
static FOCUS: string;
/** 定义 played 事件对象的 type 属性值。*/
static PLAYED: string;
/** 定义 paused 事件对象的 type 属性值。*/
static PAUSED: string;
/** 定义 stopped 事件对象的 type 属性值。*/
static STOPPED: string;
/** 定义 start 事件对象的 type 属性值。*/
static START: string;
/** 定义 end 事件对象的 type 属性值。*/
static END: string;
/** 定义 enabledchanged 事件对象的 type 属性值。*/
static ENABLED_CHANGED: string;
/** 定义 componentadded 事件对象的 type 属性值。*/
static COMPONENT_ADDED: string;
/** 定义 componentremoved 事件对象的 type 属性值。*/
static COMPONENT_REMOVED: string;
/** 定义 activechanged 事件对象的 type 属性值。*/
static ACTIVE_CHANGED: string;
/** 定义 layerchanged 事件对象的 type 属性值。*/
static LAYER_CHANGED: string;
/** 定义 hierarchyloaded 事件对象的 type 属性值。*/
static HIERARCHY_LOADED: string;
/** 定义 recovering 事件对象的 type 属性值。*/
static RECOVERING: string;
/** 定义 recovered 事件对象的 type 属性值。*/
static RECOVERED: string;
/** 定义 released 事件对象的 type 属性值。*/
static RELEASED: string;
/** 定义 link 事件对象的 type 属性值。*/
static LINK: string;
/** 定义 label 事件对象的 type 属性值。*/
static LABEL: string;
/**浏览器全屏更改时触发*/
static FULL_SCREEN_CHANGE: string;
/**显卡设备丢失时触发*/
static DEVICE_LOST: string;
/**模型更换时触发*/
static MESH_CHANGED: string;
/**材质更换时触发*/
static MATERIAL_CHANGED: string;
/**渲染队列更换时触发*/
static RENDERQUEUE_CHANGED: string;
/**世界矩阵更新时触发。*/
static WORLDMATRIX_NEEDCHANGE: string;
/**更换动作时触发。*/
static ANIMATION_CHANGED: string;
/**是否在舞台发生变化时触发。*/
static INSTAGE_CHANGED: string;
/**需重新缓存动画时触发,引擎内部使用。*/
static CACHEFRAMEINDEX_CHANGED: string;
/** 事件类型。*/
type: string;
/** 原生浏览器事件。*/
nativeEvent: any;
/** 事件目标触发对象。*/
target: laya.display.Sprite;
/** 事件当前冒泡对象。*/
currentTarget: laya.display.Sprite;
_stoped: boolean;
/** 分配给触摸点的唯一标识号(作为 int)。*/
touchId: number;
/**键盘值*/
keyCode: number;
/**
* 设置事件数据。
* @param type 事件类型。
* @param currentTarget 事件目标触发对象。
* @param target 事件当前冒泡对象。
* @return 返回当前 Event 对象。
*/
setTo(type: string, currentTarget: laya.display.Sprite, target: laya.display.Sprite): Event;
/**
* 防止对事件流中当前节点的后续节点中的所有事件侦听器进行处理。
*/
stopPropagation(): void;
/**
* 触摸点列表。
*/
touches: ArrayEventDispatcher
类是可调度事件的所有类的基类。
*/
class EventDispatcher {
static MOUSE_EVENTS: any;
/**
* 检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。
* @param type 事件的类型。
* @return 如果指定类型的侦听器已注册,则值为 true;否则,值为 false。
*/
hasListener(type: string): boolean;
/**
* 派发事件。
* @param type 事件类型。
* @param data 回调数据。
* 注意:如果是需要传递多个参数 p1,p2,p3,...可以使用数组结构如:[p1,p2,p3,...] ;如果需要回调单个参数 p 是一个数组,则需要使用结构如:[p],其他的单个参数 p ,可以直接传入参数 p。
* @return 此事件类型是否有侦听者,如果有侦听者则值为 true,否则值为 false。
*/
event(type: string, data?: any): boolean;
/**
* 使用 EventDispatcher 对象注册指定类型的事件侦听器对象,以使侦听器能够接收事件通知。
* @param type 事件的类型。
* @param caller 事件侦听函数的执行域。
* @param listener 事件侦听函数。
* @param args 事件侦听函数的回调参数。
* @return 此 EventDispatcher 对象。
*/
on(type: string, caller: any, listener: Function, args?: ArrayKeyboard
类的属性是一些常数,这些常数表示控制游戏时最常用的键。
*/
class Keyboard {
/** 与 0 的键控代码值(48)关联的常数。*/
static NUMBER_0: number;
/** 与 1 的键控代码值(49)关联的常数。*/
static NUMBER_1: number;
/** 与 2 的键控代码值(50)关联的常数。*/
static NUMBER_2: number;
/** 与 3 的键控代码值(51)关联的常数。*/
static NUMBER_3: number;
/** 与 4 的键控代码值(52)关联的常数。*/
static NUMBER_4: number;
/** 与 5 的键控代码值(53)关联的常数。*/
static NUMBER_5: number;
/** 与 6 的键控代码值(54)关联的常数。*/
static NUMBER_6: number;
/** 与 7 的键控代码值(55)关联的常数。*/
static NUMBER_7: number;
/** 与 8 的键控代码值(56)关联的常数。*/
static NUMBER_8: number;
/** 与 9 的键控代码值(57)关联的常数。*/
static NUMBER_9: number;
/** 与 A 键的键控代码值(65)关联的常数。*/
static A: number;
/** 与 B 键的键控代码值(66)关联的常数。*/
static B: number;
/** 与 C 键的键控代码值(67)关联的常数。*/
static C: number;
/** 与 D 键的键控代码值(68)关联的常数。*/
static D: number;
/** 与 E 键的键控代码值(69)关联的常数。*/
static E: number;
/** 与 F 键的键控代码值(70)关联的常数。*/
static F: number;
/** 与 G 键的键控代码值(71)关联的常数。*/
static G: number;
/** 与 H 键的键控代码值(72)关联的常数。*/
static H: number;
/** 与 I 键的键控代码值(73)关联的常数。*/
static I: number;
/** 与 J 键的键控代码值(74)关联的常数。*/
static J: number;
/** 与 K 键的键控代码值(75)关联的常数。*/
static K: number;
/** 与 L 键的键控代码值(76)关联的常数。*/
static L: number;
/** 与 M 键的键控代码值(77)关联的常数。*/
static M: number;
/** 与 N 键的键控代码值(78)关联的常数。*/
static N: number;
/** 与 O 键的键控代码值(79)关联的常数。*/
static O: number;
/** 与 P 键的键控代码值(80)关联的常数。*/
static P: number;
/** 与 Q 键的键控代码值(81)关联的常数。*/
static Q: number;
/** 与 R 键的键控代码值(82)关联的常数。*/
static R: number;
/** 与 S 键的键控代码值(83)关联的常数。*/
static S: number;
/** 与 T 键的键控代码值(84)关联的常数。*/
static T: number;
/** 与 U 键的键控代码值(85)关联的常数。*/
static U: number;
/** 与 V 键的键控代码值(86)关联的常数。*/
static V: number;
/** 与 W 键的键控代码值(87)关联的常数。*/
static W: number;
/** 与 X 键的键控代码值(88)关联的常数。*/
static X: number;
/** 与 Y 键的键控代码值(89)关联的常数。*/
static Y: number;
/** 与 Z 键的键控代码值(90)关联的常数。*/
static Z: number;
/** 与 F1 的键控代码值(112)关联的常数。*/
static F1: number;
/** 与 F2 的键控代码值(113)关联的常数。*/
static F2: number;
/** 与 F3 的键控代码值(114)关联的常数。*/
static F3: number;
/** 与 F4 的键控代码值(115)关联的常数。*/
static F4: number;
/** 与 F5 的键控代码值(116)关联的常数。*/
static F5: number;
/** 与 F6 的键控代码值(117)关联的常数。*/
static F6: number;
/** 与 F7 的键控代码值(118)关联的常数。*/
static F7: number;
/** 与 F8 的键控代码值(119)关联的常数。*/
static F8: number;
/** 与 F9 的键控代码值(120)关联的常数。*/
static F9: number;
/** 与 F10 的键控代码值(121)关联的常数。*/
static F10: number;
/** 与 F11 的键控代码值(122)关联的常数。*/
static F11: number;
/** 与 F12 的键控代码值(123)关联的常数。*/
static F12: number;
/** 与 F13 的键控代码值(124)关联的常数。*/
static F13: number;
/** 与 F14 的键控代码值(125)关联的常数。*/
static F14: number;
/** 与 F15 的键控代码值(126)关联的常数。*/
static F15: number;
/** 与数字键盘的伪键控代码(21)关联的常数。*/
static NUMPAD: number;
/** 与数字键盘上的数字 0 的键控代码值(96)关联的常数。*/
static NUMPAD_0: number;
/** 与数字键盘上的数字 1 的键控代码值(97)关联的常数。*/
static NUMPAD_1: number;
/** 与数字键盘上的数字 2 的键控代码值(98)关联的常数。*/
static NUMPAD_2: number;
/** 与数字键盘上的数字 3 的键控代码值(99)关联的常数。*/
static NUMPAD_3: number;
/** 与数字键盘上的数字 4 的键控代码值(100)关联的常数。*/
static NUMPAD_4: number;
/** 与数字键盘上的数字 5 的键控代码值(101)关联的常数。*/
static NUMPAD_5: number;
/** 与数字键盘上的数字 6 的键控代码值(102)关联的常数。*/
static NUMPAD_6: number;
/** 与数字键盘上的数字 7 的键控代码值(103)关联的常数。*/
static NUMPAD_7: number;
/** 与数字键盘上的数字 8 的键控代码值(104)关联的常数。*/
static NUMPAD_8: number;
/** 与数字键盘上的数字 9 的键控代码值(105)关联的常数。*/
static NUMPAD_9: number;
/** 与数字键盘上的加号(+)的键控代码值(107)关联的常数。*/
static NUMPAD_ADD: number;
/** 与数字键盘上的小数点(.)的键控代码值(110)关联的常数。*/
static NUMPAD_DECIMAL: number;
/** 与数字键盘上的除号(/)的键控代码值(111)关联的常数。*/
static NUMPAD_DIVIDE: number;
/** 与数字键盘上的 Enter 的键控代码值(108)关联的常数。*/
static NUMPAD_ENTER: number;
/** 与数字键盘上的乘号(*)的键控代码值(106)关联的常数。*/
static NUMPAD_MULTIPLY: number;
/** 与数字键盘上的减号(-)的键控代码值(109)关联的常数。*/
static NUMPAD_SUBTRACT: number;
/** 与 ; 键的键控代码值(186)关联的常数。*/
static SEMICOLON: number;
/** 与=键的键控代码值(187)关联的常数。*/
static EQUAL: number;
/** 与 F15 的键控代码值(188)关联的常数。*/
static COMMA: number;
/** 与 - 键的键控代码值(189)关联的常数。*/
static MINUS: number;
/** 与 . 键的键控代码值(190)关联的常数。*/
static PERIOD: number;
/** 与 / 键的键控代码值(191)关联的常数。*/
static SLASH: number;
/** 与 ` 键的键控代码值(192)关联的常数。*/
static BACKQUOTE: number;
/** 与 [ 键的键控代码值(219)关联的常数。*/
static LEFTBRACKET: number;
/** 与 \ 键的键控代码值(220)关联的常数。*/
static BACKSLASH: number;
/** 与 ] 键的键控代码值(221)关联的常数。*/
static RIGHTBRACKET: number;
/** 与 ' 键的键控代码值(222)关联的常数。*/
static QUOTE: number;
/** 与 Alternate(Option)键的键控代码值(18)关联的常数。*/
static ALTERNATE: number;
/** 与 Backspace 的键控代码值(8)关联的常数。*/
static BACKSPACE: number;
/** 与 Caps Lock 的键控代码值(20)关联的常数。*/
static CAPS_LOCK: number;
/** 与 Mac 命令键(15)关联的常数。*/
static COMMAND: number;
/** 与 Ctrl 的键控代码值(17)关联的常数。*/
static CONTROL: number;
/** 与 Delete 的键控代码值(46)关联的常数。*/
static DELETE: number;
/** 与 Enter 的键控代码值(13)关联的常数。*/
static ENTER: number;
/** 与 Esc 的键控代码值(27)关联的常数。*/
static ESCAPE: number;
/** 与 Page Up 的键控代码值(33)关联的常数。*/
static PAGE_UP: number;
/** 与 Page Down 的键控代码值(34)关联的常数。*/
static PAGE_DOWN: number;
/** 与 End 的键控代码值(35)关联的常数。*/
static END: number;
/** 与 Home 的键控代码值(36)关联的常数。*/
static HOME: number;
/** 与向左箭头键的键控代码值(37)关联的常数。*/
static LEFT: number;
/** 与向上箭头键的键控代码值(38)关联的常数。*/
static UP: number;
/** 与向右箭头键的键控代码值(39)关联的常数。*/
static RIGHT: number;
/** 与向下箭头键的键控代码值(40)关联的常数。*/
static DOWN: number;
/** 与 Shift 的键控代码值(16)关联的常数。*/
static SHIFT: number;
/** 与空格键的键控代码值(32)关联的常数。*/
static SPACE: number;
/** 与 Tab 的键控代码值(9)关联的常数。*/
static TAB: number;
/** 与 Insert 的键控代码值(45)关联的常数。*/
static INSERT: number;
}
}
declare module laya.events {
/**
* KeyBoardManager
是键盘事件管理类。
该类从浏览器中接收键盘事件,并派发该事件。 * 派发事件时若 Stage.focus 为空则只从 Stage 上派发该事件,否则将从 Stage.focus 对象开始一直冒泡派发该事件。 * 所以在 Laya.stage 上监听键盘事件一定能够收到,如果在其他地方监听,则必须处在Stage.focus的冒泡链上才能收到该事件。
*用户可以通过代码 Laya.stage.focus=someNode 的方式来设置focus对象。
*用户可统一的根据事件对象中 e.keyCode 来判断按键类型,该属性兼容了不同浏览器的实现。
*/ class KeyBoardManager { private static _pressKeys; /**是否开启键盘事件,默认为true*/ static enabled: boolean; static _event: Event; static __init__(): void; /** * 返回指定键是否被按下。 * @param key 键值。 * @return 是否被按下。 */ static hasKeyDown(key: number): boolean; } } declare module laya.events { /** *KeyLocation
类包含表示在键盘或类似键盘的输入设备上按键位置的常量。
KeyLocation
常数用在键盘事件对象的 keyLocation
属性中。
表示激活的键位于数字键盘或者是使用对应于数字键盘的虚拟键激活的。
*注意:此属性只在flash模式下有效。
* */ static NUM_PAD: number; } } declare module laya.events { /** *MouseManager
是鼠标、触摸交互管理器。
*/
class MouseManager {
/**
* MouseManager 单例引用。
*/
static instance: MouseManager;
/**是否开启鼠标检测,默认为true*/
static enabled: boolean;
/** canvas 上的鼠标X坐标。*/
mouseX: number;
/** canvas 上的鼠标Y坐标。*/
mouseY: number;
/** 是否禁用除 stage 以外的鼠标事件检测。*/
disableMouseEvent: boolean;
/** 鼠标按下的时间。单位为毫秒。*/
mouseDownTime: number;
/** 鼠标移动精度。*/
mouseMoveAccuracy: number;
private static _isTouchRespond;
_event: Event;
/**
* @private
* 初始化。
*/
__init__(stage: laya.display.Stage, canvas: any): void;
/**
* 执行事件处理。
*/
runEvent(): void;
}
}
declare module laya.filters {
/**
* 模糊滤镜
*/
class BlurFilter extends Filter {
/**模糊滤镜的强度(值越大,越不清晰 */
strength: number;
/**
* 模糊滤镜
* @param strength 模糊滤镜的强度值
*/
constructor(strength?: number);
/**
* @private
* 当前滤镜对应的操作器
*/
action: IFilterAction;
/**
* @private
* 当前滤镜的类型
*/
type: number;
/**
* @private 通知微端
*/
callNative(sp: laya.display.Sprite): void;
}
}
declare module laya.filters {
/**
* ColorFilter
是颜色滤镜。
ColorFilter
实例。
* @param mat 4 x 5 矩阵。
*/
constructor(mat?: ArrayColorFilterAction
是一个颜色滤镜应用类。
*/
class ColorFilterAction implements IFilterAction {
data: ColorFilter;
/**
* 创建一个 ColorFilterAction
实例。
*/
constructor();
/**
* 给指定的对象应用颜色滤镜。
* @param srcCanvas 需要应用画布对象。
* @return 应用了滤镜后的画布对象。
*/
apply(srcCanvas: any): any;
}
}
declare module laya.filters {
/**
* Filter
是滤镜基类。
*/
class Filter implements IFilter {
static BLUR: number;
static COLOR: number;
static GLOW: number;
static _filterStart: Function;
static _filterEnd: Function;
static _EndTarget: Function;
static _recycleScope: Function;
static _filter: Function;
static _useSrc: Function;
static _endSrc: Function;
static _useOut: Function;
static _endOut: Function;
_action: any;
/**
* 创建一个 Filter
实例。
* */
constructor();
type: number;
action: IFilterAction;
callNative(sp: laya.display.Sprite): void;
}
}
declare module laya.filters {
/**
* 默认的FILTER,什么都不做
* @private
*/
class FilterAction implements IFilterAction {
data: any;
apply(data: any): any;
}
}
declare module laya.filters {
/**
* 发光滤镜(也可以当成阴影滤使用)
*/
class GlowFilter extends Filter {
/**
* 创建发光滤镜
* @param color 滤镜的颜色
* @param blur 边缘模糊的大小
* @param offX X轴方向的偏移
* @param offY Y轴方向的偏移
*/
constructor(color: string, blur?: number, offX?: number, offY?: number);
/**
* @private
* 滤镜类型
*/
type: number;
action: IFilterAction;
offY: number;
offX: number;
getColor(): ArrayIFilterAction
是滤镜动画接口。
*/
interface IFilterAction {
}
}
declare module laya.filters {
interface IFilterActionGL extends IFilterAction {
}
}
declare module laya.filters.webgl {
/**
* @private
*/
class BlurFilterActionGL extends FilterActionGL {
data: laya.filters.BlurFilter;
constructor();
typeMix: number;
setValueMix(shader: laya.webgl.shader.d2.value.Value2D): void;
apply3d(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): any;
setValue(shader: any): void;
}
}
declare module laya.filters.webgl {
class ColorFilterActionGL extends FilterActionGL implements laya.filters.IFilterActionGL {
data: laya.filters.ColorFilter;
constructor();
setValue(shader: any): void;
apply3d(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): any;
}
}
declare module laya.filters.webgl {
class FilterActionGL implements laya.filters.IFilterActionGL {
constructor();
typeMix: number;
setValue(shader: any): void;
setValueMix(shader: laya.webgl.shader.d2.value.Value2D): void;
apply3d(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): any;
apply(srcCanvas: any): any;
}
}
declare module laya.filters.webgl {
/**
* @private
*/
class GlowFilterActionGL extends FilterActionGL implements laya.filters.IFilterActionGL {
data: laya.filters.GlowFilter;
constructor();
typeMix: number;
setValueMix(shader: laya.webgl.shader.d2.value.Value2D): void;
static tmpTarget(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): void;
static startOut(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): void;
static recycleTarget(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): void;
apply3d(scope: laya.webgl.submit.SubmitCMDScope, sprite: laya.display.Sprite, context: laya.renders.RenderContext, x: number, y: number): any;
setSpriteWH(sprite: laya.display.Sprite): void;
setValue(shader: any): void;
}
}
declare module laya.filters {
/**
* @private
*/
class WebGLFilter {
private static isInit;
static enable(): void;
}
}
declare module laya.html.dom {
/**
* @private
*/
class HTMLBrElement extends HTMLElement {
constructor();
}
}
declare module laya.html.dom {
/**
* DIV标签
*/
class HTMLDivElement extends HTMLElement {
/** 实际内容的高 */
contextHeight: number;
/** 实际内容的宽 */
contextWidth: number;
constructor();
/**
* 设置标签内容
*/
innerHTML: string;
/**
* 追加内容,解析并对显示对象排版
* @param text
*/
appendHTML(text: string): void;
/**
* @private
* @param out
* @return
*/
_addChildsToLayout(out: ArrayMathUtil
是一个数据处理工具类。
*/
class MathUtil {
static subtractVector3(l: Float32Array, r: Float32Array, o: Float32Array): void;
static lerp(left: number, right: number, amount: number): number;
static scaleVector3(f: Float32Array, b: number, e: Float32Array): void;
static lerpVector3(l: Float32Array, r: Float32Array, t: number, o: Float32Array): void;
static lerpVector4(l: Float32Array, r: Float32Array, t: number, o: Float32Array): void;
static slerpQuaternionArray(a: Float32Array, Offset1: number, b: Float32Array, Offset2: number, t: number, out: Float32Array, Offset3: number): Float32Array;
/**
* 获取指定的两个点组成的线段的弧度值。
* @param x0 点一的 X 轴坐标值。
* @param y0 点一的 Y 轴坐标值。
* @param x1 点二的 X 轴坐标值。
* @param y1 点二的 Y 轴坐标值。
* @return 弧度值。
*/
static getRotation(x0: number, y0: number, x1: number, y1: number): number;
/**
* 一个用来确定数组元素排序顺序的比较函数。
* @param a 待比较数字。
* @param b 待比较数字。
* @return 如果a等于b 则值为0;如果b>a则值为1;如果b<则值为-1。
*/
static sortBigFirst(a: number, b: number): number;
/**
* 一个用来确定数组元素排序顺序的比较函数。
* @param a 待比较数字。
* @param b 待比较数字。
* @return 如果a等于b 则值为0;如果b>a则值为-1;如果b<则值为1。
*/
static sortSmallFirst(a: number, b: number): number;
/**
* 将指定的元素转为数字进行比较。
* @param a 待比较元素。
* @param b 待比较元素。
* @return b、a转化成数字的差值 (b-a)。
*/
static sortNumBigFirst(a: any, b: any): number;
/**
* 将指定的元素转为数字进行比较。
* @param a 待比较元素。
* @param b 待比较元素。
* @return a、b转化成数字的差值 (a-b)。
*/
static sortNumSmallFirst(a: any, b: any): number;
/**
* 返回根据对象指定的属性进行排序的比较函数。
* @param key 排序要依据的元素属性名。
* @param bigFirst 如果值为true,则按照由大到小的顺序进行排序,否则按照由小到大的顺序进行排序。
* @param forceNum 如果值为true,则将排序的元素转为数字进行比较。
* @return 排序函数。
*/
static sortByKey(key: string, bigFirst?: boolean, forceNum?: boolean): Function;
}
}
declare module laya.maths {
/**
* Matrix
类表示一个转换矩阵,它确定如何将点从一个坐标空间映射到另一个坐标空间。
*/
class Matrix {
static EMPTY: Matrix;
/** 用于中转使用的 Matrix
对象。*/
static TEMP: Matrix;
static _cache: any;
cos: number;
sin: number;
/**缩放或旋转图像时影响像素沿 x 轴定位的值。*/
a: number;
/**旋转或倾斜图像时影响像素沿 y 轴定位的值。*/
b: number;
/**旋转或倾斜图像时影响像素沿 x 轴定位的值。*/
c: number;
/**缩放或旋转图像时影响像素沿 y 轴定位的值。*/
d: number;
/**沿 x 轴平移每个点的距离。*/
tx: number;
/**沿 y 轴平移每个点的距离。*/
ty: number;
inPool: boolean;
bTransform: boolean;
/**
* 使用指定参数创建新的 Matrix
对象。
* @param a 缩放或旋转图像时影响像素沿 x 轴定位的值。
* @param b 旋转或倾斜图像时影响像素沿 y 轴定位的值。
* @param c 旋转或倾斜图像时影响像素沿 x 轴定位的值。
* @param d 缩放或旋转图像时影响像素沿 y 轴定位的值。
* @param tx 沿 x 轴平移每个点的距离。
* @param ty 沿 y 轴平移每个点的距离。
*/
constructor(a?: number, b?: number, c?: number, d?: number, tx?: number, ty?: number);
/**
* 为每个矩阵属性设置一个值。
* @return 返回当前矩形。
*/
identity(): Matrix;
/**@private*/
_checkTransform(): boolean;
/**
* 设置沿 x 、y 轴平移每个点的距离。
* @param x 沿 x 轴平移每个点的距离。
* @param y 沿 y 轴平移每个点的距离。
* @return 返回对象本身
*/
setTranslate(x: number, y: number): Matrix;
/**
* 沿 x 和 y 轴平移矩阵,由 x 和 y 参数指定。
* @param x 沿 x 轴向右移动的量(以像素为单位)。
* @param y 沿 y 轴向下移动的量(以像素为单位)。
* @return 返回此矩形。
*/
translate(x: number, y: number): Matrix;
/**
* 对矩阵应用缩放转换。
* @param x 用于沿 x 轴缩放对象的乘数。
* @param y 用于沿 y 轴缩放对象的乘数。
*/
scale(x: number, y: number): void;
/**
* 对 Matrix 对象应用旋转转换。
* @param angle 以弧度为单位的旋转角度。
*/
rotate(angle: number): void;
/**
* 对 Matrix 对象应用倾斜转换。
* @param x 沿着 X 轴的 2D 倾斜弧度。
* @param y 沿着 Y 轴的 2D 倾斜弧度。
* @return 当前 Matrix 对象。
*/
skew(x: number, y: number): Matrix;
/**
* 对指定的点应用当前矩阵的逆转化并返回此点。
* @param out 待转化的点 Point 对象。
* @return 返回out
*/
invertTransformPoint(out: Point): Point;
/**
* 将 Matrix 对象表示的几何转换应用于指定点。
* @param out 用来设定输出结果的点。
* @return 返回out
*/
transformPoint(out: Point): Point;
/**
* @private
* 将 Matrix 对象表示的几何转换应用于指定点。
* @param data 点集合。
* @param out 存储应用转化的点的列表。
* @return 返回out数组
*/
transformPointArray(data: ArrayMatrix
对象。
* @return Matrix
对象。
*/
static create(): Matrix;
}
}
declare module laya.maths {
/**
* Point
对象表示二维坐标系统中的某个位置,其中 x 表示水平轴,y 表示垂直轴。
*/
class Point {
/**临时使用的公用对象。*/
static TEMP: Point;
static EMPTY: Point;
/**该点的水平坐标。*/
x: number;
/**该点的垂直坐标。*/
y: number;
/**
* 根据指定坐标,创建一个新的 Point
对象。
* @param x 水平坐标。
* @param y 垂直坐标。
*/
constructor(x?: number, y?: number);
/**
* 将 Point
的成员设置为指定值。
* @param x 水平坐标。
* @param y 垂直坐标。
* @return 当前 Point 对象。
*/
setTo(x: number, y: number): Point;
/**
* 计算当前点和目标x,y点的距离
* @param x 水平坐标。
* @param y 垂直坐标。
* @return 返回之间的距离
*/
distance(x: number, y: number): number;
/**返回包含 x 和 y 坐标的值的字符串。*/
toString(): string;
/**
* 标准化向量
*/
normalize(): void;
}
}
declare module laya.maths {
/**
* Rectangle
对象是按其位置(由它左上角的点 (x, y) 确定)以及宽度和高度定义的区域。
*/
class Rectangle {
static EMPTY: Rectangle;
/**全局临时的矩形区域,此对象用于全局复用,以减少对象创建*/
static TEMP: Rectangle;
/** 矩形左上角的 X 轴坐标。*/
x: number;
/** 矩形左上角的 Y 轴坐标。*/
y: number;
/** 矩形的宽度。*/
width: number;
/** 矩形的高度。*/
height: number;
private static _temB;
private static _temA;
/**
* 创建一个 Rectangle
对象。
* @param x 矩形左上角的 X 轴坐标。
* @param y 矩形左上角的 Y 轴坐标。
* @param width 矩形的宽度。
* @param height 矩形的高度。
*/
constructor(x?: number, y?: number, width?: number, height?: number);
/** 此矩形的右边距。 x 和 width 属性的和。*/
right: number;
/** 此矩形的底边距。y 和 height 属性的和。*/
bottom: number;
/**
* 将 Rectangle 的属性设置为指定值。
* @param x x 矩形左上角的 X 轴坐标。
* @param y x 矩形左上角的 Y 轴坐标。
* @param width 矩形的宽度。
* @param height 矩形的高。
* @return 返回属性值修改后的矩形对象本身。
*/
setTo(x: number, y: number, width: number, height: number): Rectangle;
/**
* 复制 source 对象的属性值到此矩形对象中。
* @param sourceRect 源 Rectangle 对象。
* @return 返回属性值修改后的矩形对象本身。
*/
copyFrom(source: Rectangle): Rectangle;
/**
* 检测此矩形对象是否包含指定的点。
* @param x 点的 X 轴坐标值(水平位置)。
* @param y 点的 Y 轴坐标值(垂直位置)。
* @return 如果 Rectangle 对象包含指定的点,则值为 true;否则为 false。
*/
contains(x: number, y: number): boolean;
/**
* 检测传入的矩形对象是否与此对象相交。
* @param rect Rectangle 对象。
* @return 如果传入的矩形对象与此对象相交,则返回 true 值,否则返回 false。
*/
intersects(rect: Rectangle): boolean;
/**
* 获取此对象与传入的矩形对象的相交区域。并将相交区域赋值给传入的输出矩形对象。
* @param rect 待比较的矩形区域。
* @param out 待输出的矩形区域。建议:尽量用此对象复用对象,减少对象创建消耗。
* @return 返回相交的矩形区域对象。
*/
intersection(rect: Rectangle, out?: Rectangle): Rectangle;
/**
* 矩形联合,通过填充两个矩形之间的水平和垂直空间,将这两个矩形组合在一起以创建一个新的 Rectangle 对象。
* @param 目标矩形对象。
* @param out 待输出结果的矩形对象。建议:尽量用此对象复用对象,减少对象创建消耗。
* @return 两个矩形后联合的 Rectangle 对象 out 。
*/
union(source: Rectangle, out?: Rectangle): Rectangle;
/**
* 返回一个 Rectangle 对象,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
* @param out 待输出的矩形对象。建议:尽量用此对象复用对象,减少对象创建消耗。
* @return Rectangle 对象 out ,其 x、y、width 和 height 属性的值与当前 Rectangle 对象的对应值相同。
*/
clone(out?: Rectangle): Rectangle;
/**
* 当前 Rectangle 对象的水平位置 x 和垂直位置 y 以及高度 width 和宽度 height 以逗号连接成的字符串。
*/
toString(): string;
/**
* 检测传入的 Rectangle 对象的属性是否与当前 Rectangle 对象的属性 x、y、width、height 属性值都相等。
* @param rect 待比较的 Rectangle 对象。
* @return 如果判断的属性都相等,则返回 true ,否则返回 false。
*/
equals(rect: Rectangle): boolean;
/**
* 在当前矩形区域中加一个点。
* @param x 点的 X 坐标。
* @param y 点的 Y 坐标。
* @return 返回此 Rectangle 对象。
*/
addPoint(x: number, y: number): Rectangle;
/**
* @private
* 返回代表当前矩形的顶点数据。
* @return 顶点数据。
*/
_getBoundPoints(): ArraySound
类是用来播放控制声音的类。
*/
class Sound extends laya.events.EventDispatcher {
/**
* 加载声音。
* @param url 地址。
*
*/
load(url: string): void;
/**
* 播放声音。
* @param startTime 开始时间,单位秒
* @param loops 循环次数,0表示一直循环
* @return 声道 SoundChannel 对象。
*
*/
play(startTime?: number, loops?: number): SoundChannel;
/**
* 释放声音资源。
*
*/
dispose(): void;
}
}
declare module laya.media {
/**
* SoundChannel
用来控制程序中的声音。
*/
class SoundChannel extends laya.events.EventDispatcher {
/**
* 声音地址。
*/
url: string;
/**
* 循环次数。
*/
loops: number;
/**
* 开始时间。
*/
startTime: number;
/**
* 表示声音是否已暂停。
*/
isStopped: boolean;
/**
* 播放完成处理器。
*/
completeHandler: laya.utils.Handler;
/**
* 音量。
*/
volume: number;
/**
* 获取当前播放时间。
*/
position: number;
/**
* 播放。
*/
play(): void;
/**
* 停止。
*/
stop(): void;
protected __runComplete(handler: laya.utils.Handler): void;
}
}
declare module laya.media {
/**
* SoundManager
是一个声音管理类。
*/
class SoundManager {
/** 背景音乐音量。*/
static musicVolume: number;
/** 音效音量。*/
static soundVolume: number;
private static _muted;
private static _soundMuted;
private static _musicMuted;
private static _tMusic;
private static _musicChannel;
private static _channels;
private static _autoStopMusic;
private static _blurPaused;
private static _musicLoops;
private static _musicPosition;
private static _musicCompleteHandler;
static _soundClass: any;
/**
* 添加播放的声音实例。
* @param channel SoundChannel
对象。
*/
static addChannel(channel: SoundChannel): void;
/**
* 移除播放的声音实例。
* @param channel SoundChannel
对象。
*/
static removeChannel(channel: SoundChannel): void;
/**
* 表示是否失去焦点后自动停止背景音乐。
* @return
*/
/**
* 设置是否失去焦点后自动停止背景音乐。
* @param v Boolean 值。
*
*/
static autoStopMusic: boolean;
/**
* 表示是否静音。
*/
static muted: boolean;
/** 表示是否使音效静音。*/
static soundMuted: boolean;
/** 表示是否使背景音乐静音。*/
static musicMuted: boolean;
/**
* 播放音效。
* @param url 声音文件地址。
* @param loops 循环次数,0表示无限循环。
* @param complete 声音播放完成回调 Handler对象。
* @param startTime 声音播放起始时间。
* @return SoundChannel对象。
*/
static playSound(url: string, loops?: number, complete?: laya.utils.Handler, soundClass?: any, startTime?: number): SoundChannel;
/**
* 释放声音资源。
* @param url 声音文件地址。
*/
static destroySound(url: string): void;
/**
* 播放背景音乐。
* @param url 声音文件地址。
* @param loops 循环次数,0表示无限循环。
* @param complete 声音播放完成回调。
* @param startTime 声音播放起始时间。
* @return audio对象。
*/
static playMusic(url: string, loops?: number, complete?: laya.utils.Handler, startTime?: number): SoundChannel;
/**
* 停止声音播放。
* @param url 声音文件地址。
*/
static stopSound(url: string): void;
/**
* 停止所有声音播放。
*/
static stopAll(): void;
/**
* 停止背景音乐播放。
* @param url 声音文件地址。
*/
static stopMusic(): void;
/**
* 设置声音音量
* @param volume 音量 标准值为1
* @param url 声音文件地址。为null(默认值)时对所有音效起作用,不为空时仅对对于声音生效
*/
static setSoundVolume(volume: number, url?: string): void;
/**
* 设置背景音乐音量。
* @param volume 音量,标准值为1。
*/
static setMusicVolume(volume: number): void;
}
}
declare module laya.media {
class SoundNode extends laya.display.Sprite {
url: string;
constructor();
/**
* 播放
* @param loops 循环次数
* @param complete 完成回调
*
*/
play(loops?: number, complete?: laya.utils.Handler): void;
/**
* 停止播放
*
*/
stop(): void;
/**
* 设置触发播放的事件
* @param events
*
*/
playEvent: string;
/**
* 设置控制播放的对象
* @param tar
*
*/
target: laya.display.Sprite;
/**
* 设置触发停止的事件
* @param events
*
*/
stopEvent: string;
}
}
declare module laya.media.webaudio {
/**
* @private
* web audio api方式播放声音
*/
class WebAudioSound extends laya.events.EventDispatcher {
static window: any;
private static _dataCache;
/**
* 是否支持web audio api
*/
static webAudioEnabled: boolean;
/**
* 播放设备
*/
static ctx: any;
/**
* 当前要解码的声音文件列表
*/
static buffs: ArrayHttpRequest
通过 HTTP 协议传送或接收 XML 及其他数据。
*/
class HttpRequest extends laya.events.EventDispatcher {
protected _http: any;
protected _responseType: string;
protected _data: any;
/**
* 发送请求。
* @param url 请求的地址。
* @param data 发送的数据,可选。
* @param method 发送数据方式,值为“get”或“post”,默认为 “get”方式。
* @param responseType 返回消息类型,可设置为"text","json","xml","arraybuffer"。
* @param headers 头信息,key value数组,比如["Content-Type", "application/json"]。
*/
send(url: string, data?: any, method?: string, responseType?: string, headers?: ArrayLoader
类可用来加载文本、JSON、XML、二进制、图像等资源。
*/
class Loader extends laya.events.EventDispatcher {
/** 文本类型,加载完成后返回文本。*/
static TEXT: string;
/** JSON 类型,加载完成后返回json数据。*/
static JSON: string;
/** XML 类型,加载完成后返回domXML。*/
static XML: string;
/** 二进制类型,加载完成后返回arraybuffer二进制数据。*/
static BUFFER: string;
/** 纹理类型,加载完成后返回Texture。*/
static IMAGE: string;
/** 声音类型,加载完成后返回sound。*/
static SOUND: string;
/** 图集类型,加载完成后返回图集json信息(并创建图集内小图Texture)。*/
static ATLAS: string;
/** 三维素材,2D纹理。*/
static TEXTURE2D: string;
/** 三维素材,cube纹理。*/
static TEXTURECUBE: string;
/** 文件后缀和类型对应表。*/
static typeMap: any;
/**资源解析函数对应表,用来扩展更多类型的资源加载解析*/
static parserMap: any;
/** 已加载的资源池。*/
static loadedMap: any;
/** 资源分组。*/
static groupMap: any;
/** 每帧回调最大超时时间,如果超时,则下帧再处理。*/
static maxTimeOut: number;
protected static _loaders: ArrayEvent.COMPLETE
。
* @param content 加载后的数据
*/
endLoad(content?: any): void;
/** 加载地址。*/
url: string;
/**加载类型。*/
type: string;
/**是否缓存。*/
cache: boolean;
/**返回的数据。*/
data: any;
/**
* @private
*/
static _parseURL(url: string): string;
/**
* 清理指定资源地址的缓存。
* @param url 资源地址。
* @param forceDispose 是否强制销毁,有些资源是采用引用计数方式销毁,如果forceDispose=true,则忽略引用计数,直接销毁,比如Texture,默认为false
*/
static clearRes(url: string, forceDispose?: boolean): void;
/**
* 获取指定资源地址的资源。
* @param url 资源地址。
* @return 返回资源。
*/
static getRes(url: string): any;
/**
* 获取指定资源地址的图集地址列表。
* @param url 图集地址。
* @return 返回地址集合。
*/
static getAtlas(url: string): Array LoaderManager
类用于用于批量加载资源、数据。
批量加载器,单例,可以通过Laya.loader访问。
* 多线程(默认5个线程),5个优先级(0最快,4最慢,默认为1) * 某个资源加载失败后,会按照最低优先级重试加载(属性retryNum决定重试几次),如果重试后失败,则调用complete函数,并返回null */ class LoaderManager extends laya.events.EventDispatcher { /** 加载出错后的重试次数,默认重试一次*/ retryNum: number; /** 最大下载线程,默认为5个*/ maxLoader: number; /** * 创建一个新的LoaderManager
实例。
*/
constructor();
/**
* 加载资源。
* @param url 地址,或者资源对象数组(简单数组:["a.png","b.png"],复杂数组[
* @param complete 结束回调,如果加载失败,则返回 null 。
* @param progress 进度回调,回调参数为当前文件加载的进度信息(0-1)。
* @param type 资源类型。
* @param priority 优先级,0-4,五个优先级,0优先级最高,默认为1。
* @param cache 是否缓存加载结果。
* @param group 分组。
* @return 此 LoaderManager 对象。
*/
load(url: any, complete?: laya.utils.Handler, progress?: laya.utils.Handler, type?: string, priority?: number, cache?: boolean, group?: string): LoaderManager;
/**
* 清理指定资源地址缓存。
* @param url 资源地址。
* @param forceDispose 是否强制销毁,有些资源是采用引用计数方式销毁,如果forceDispose=true,则忽略引用计数,直接销毁,比如Texture,默认为false
*/
clearRes(url: string, forceDispose?: boolean): void;
/**
* 获取指定资源地址的资源。
* @param url 资源地址。
* @return 返回资源。
*/
getRes(url: string): any;
/**
* 缓存资源。
* @param url 资源地址。
* @param data 要缓存的内容。
*/
static cacheRes(url: string, data: any): void;
/** 清理当前未完成的加载,所有未加载的内容全部停止加载。*/
clearUnLoaded(): void;
/**
* 根据地址集合清理掉未加载的内容
* @param urls 资源地址集合
*/
cancelLoadByUrls(urls: Array LocalStorage
类用于没有时间限制的数据存储。
LocalStorage
。
*/
static support: boolean;
static __init__(): void;
/**
* 存储指定键名和键值,字符串类型。
* @param key 键名。
* @param value 键值。
*/
static setItem(key: string, value: string): void;
/**
* 获取指定键名的值。
* @param key 键名。
* @return 字符串型值。
*/
static getItem(key: string): string;
/**
* 存储指定键名和它的 Object
类型值。
* @param key 键名。
* @param value 键值。是 Object
类型,此致会被转化为 JSON 字符串存储。
*/
static setJSON(key: string, value: any): void;
/**
* 获取指定键名的 Object
类型值。
* @param key 键名。
* @return Object
类型值
*/
static getJSON(key: string): any;
/**
* 删除指定键名的信息。
* @param key 键名。
*/
static removeItem(key: string): void;
/**
* 清除本地存储信息。
*/
static clear(): void;
}
class Storage {
/**
* 数据列表。
*/
static items: any;
/**
* 表示是否支持 LocalStorage
。
*/
static support: boolean;
static init(): void;
/**
* 存储指定键名和键值,字符串类型。
* @param key 键名。
* @param value 键值。
*/
static setItem(key: string, value: string): void;
/**
* 获取指定键名的值。
* @param key 键名。
* @return 字符串型值。
*/
static getItem(key: string): string;
/**
* 存储指定键名和它的 Object
类型值。
* @param key 键名。
* @param value 键值。是 Object
类型,此致会被转化为 JSON 字符串存储。
*/
static setJSON(key: string, value: any): void;
/**
* 获取指定键名的 Object
类型值。
* @param key 键名。
* @return Object
类型值
*/
static getJSON(key: string): any;
/**
* 删除指定键名的信息。
* @param key 键名。
*/
static removeItem(key: string): void;
/**
* 清除本地存储信息。
*/
static clear(): void;
}
}
declare module laya.net {
/**
* Socket
是一种双向通信协议,在建立连接后,服务器和 Browser/Client Agent 都能主动的向对方发送或接收数据。
*/
class Socket extends laya.events.EventDispatcher {
/**
* 表示多字节数字的最低有效字节位于字节序列的最前面。
*/
static LITTLE_ENDIAN: string;
/**
* 表示多字节数字的最高有效字节位于字节序列的最前面。
*/
static BIG_ENDIAN: string;
_endian: string;
protected _socket: any;
/**
* 表示建立连接时需等待的毫秒数。
*/
timeout: number;
/**
* 在写入或读取对象时,控制所使用的 AMF 的版本。
*/
objectEncoding: number;
/**
* 不使用socket提供的 input封装
*/
disableInput: boolean;
/**
* 表示服务端发来的数据。
*/
input: any;
/**
* 表示需要发送至服务端的缓冲区中的数据。
*/
output: any;
/**
* 表示此 Socket 对象目前是否已连接。
*/
connected: boolean;
/**
* 表示数据的字节顺序。
*/
endian: string;
/**
* 创建一个新的 Socket
实例。
URL
类用于定义地址信息。
URL
实例。*/
constructor(url: string);
/**格式化后的地址。*/
url: string;
/**地址的路径。*/
path: string;
/**基础路径。*/
static basePath:string;
/**根路径。*/
static rootPath:string;
/** 自定义url格式化。例如: customFormat = function(url:String,basePath:String):String{} */
static customFormat:Function;
/**
* 格式化指定的地址并 返回。
* @param url 地址。
* @param base 路径。
* @return 格式化处理后的地址。
*/
static formatURL(url: string, base?: string): string;
/**
* @private
* 获取指定 URL 的路径。
* 注意:末尾有斜杠(/)。
* @param url 地址。 * @return url 的路径。 */ static getPath(url: string): string; /** * 获取指定 URL 的文件名。 * @param url 地址。 * @return url 的文件名。 */ static getFileName(url: string): string; } } declare module laya.particle.emitter { /** * * @private */ class Emitter2D extends EmitterBase { settiong: laya.particle.ParticleSetting; constructor(_template: laya.particle.ParticleTemplateBase); template: laya.particle.ParticleTemplateBase; emit(): void; getRandom(value: number): number; webGLEmit(): void; canvasEmit(): void; } } declare module laya.particle.emitter { /** *EmitterBase
类是粒子发射器类
*/
class EmitterBase {
protected _frameTime: number;
protected _emissionRate: number;
protected _emissionTime: number;
/**
* 发射粒子最小时间间隔
*/
minEmissionTime: number;
_particleTemplate: laya.particle.ParticleTemplateBase;
/**
* 设置粒子粒子模板
* @param particleTemplate 粒子模板
*
*/
particleTemplate: laya.particle.ParticleTemplateBase;
/**
* 获取粒子发射速率
* @return 发射速率 粒子发射速率 (个/秒)
*/
/**
* 设置粒子发射速率
* @param emissionRate 粒子发射速率 (个/秒)
*/
emissionRate: number;
/**
* 开始发射粒子
* @param duration 发射持续的时间
*/
start(duration?: number): void;
/**
* 停止发射粒子
* @param clearParticles 是否清理当前的粒子
*/
stop(): void;
/**
* 清理当前的活跃粒子
* @param clearTexture 是否清理贴图数据,若清除贴图数据将无法再播放
*/
clear(): void;
/**
* 发射一个粒子
*
*/
emit(): void;
/**
* 时钟前进
* @param passedTime 前进时间
*
*/
advanceTime(passedTime?: number): void;
}
}
declare module laya.particle {
/**
* Particle2D
类是2D粒子播放类
*
*/
class Particle2D extends laya.display.Sprite {
/**是否自动播放*/
autoPlay: boolean;
/**
* 创建一个新的 Particle2D
类实例。
* @param setting 粒子配置数据
*/
constructor(setting: ParticleSetting);
/**
* 设置 粒子文件地址
* @param path 粒子文件地址
*/
url: string;
/**
* 加载粒子文件
* @param url 粒子文件地址
*/
load(url: string): void;
/**
* 设置粒子配置数据
* @param settings 粒子配置数据
*/
setParticleSetting(setting: ParticleSetting): void;
/**
* 获取粒子发射器
*/
emitter: laya.particle.emitter.EmitterBase;
/**
* 播放
*/
play(): void;
/**
* 停止
*/
stop(): void;
/**
* 时钟前进
* @param passedTime 时钟前进时间
*/
advanceTime(passedTime?: number): void;
customRender(context: laya.renders.RenderContext, x: number, y: number): void;
destroy(destroyChild?: boolean): void;
}
}
declare module laya.particle {
/**
* @private
*/
class ParticleData {
private static _tempVelocity;
private static _tempStartColor;
private static _tempEndColor;
private static _tempSizeRotation;
private static _tempRadius;
private static _tempRadian;
position: Float32Array;
velocity: Float32Array;
startColor: Float32Array;
endColor: Float32Array;
sizeRotation: Float32Array;
radius: Float32Array;
radian: Float32Array;
durationAddScale: number;
time: number;
constructor();
static Create(settings: ParticleSetting, position: Float32Array, velocity: Float32Array, time: number): ParticleData;
}
}
declare module laya.particle {
/**
* @private
*/
class ParticleEmitter {
constructor(templet: ParticleTemplateBase, particlesPerSecond: number, initialPosition: Float32Array);
update(elapsedTime: number, newPosition: Float32Array): void;
}
}
declare module laya.particle {
/**
* ParticleSettings
类是粒子配置数据类
*/
class ParticleSetting {
/**贴图*/
textureName: string;
/**贴图个数,默认为1可不设置*/
textureCount: number;
/**由于循环队列判断算法,最大饱和粒子数为maxPartices-1*/
maxPartices: number;
/**粒子持续时间(单位:秒)*/
duration: number;
/**如果大于0,某些粒子的持续时间会小于其他粒子,并具有随机性(单位:无)*/
ageAddScale: number;
/**粒子受发射器速度的敏感度(需在自定义发射器中编码设置)*/
emitterVelocitySensitivity: number;
/**最小开始尺寸(单位:2D像素、3D坐标)*/
minStartSize: number;
/**最大开始尺寸(单位:2D像素、3D坐标)*/
maxStartSize: number;
/**最小结束尺寸(单位:2D像素、3D坐标)*/
minEndSize: number;
/**最大结束尺寸(单位:2D像素、3D坐标)*/
maxEndSize: number;
/**最小水平速度(单位:2D像素、3D坐标)*/
minHorizontalVelocity: number;
/**最大水平速度(单位:2D像素、3D坐标)*/
maxHorizontalVelocity: number;
/**最小垂直速度(单位:2D像素、3D坐标)*/
minVerticalVelocity: number;
/**最大垂直速度(单位:2D像素、3D坐标)*/
maxVerticalVelocity: number;
/**等于1时粒子从出生到消亡保持一致的速度,等于0时粒子消亡时速度为0,大于1时粒子会保持加速(单位:无)*/
endVelocity: number;
/**(单位:2D像素、3D坐标)*/
gravity: Float32Array;
/**最小旋转速度(单位:2D弧度/秒、3D弧度/秒)*/
minRotateSpeed: number;
/**最大旋转速度(单位:2D弧度/秒、3D弧度/秒)*/
maxRotateSpeed: number;
/**最小开始半径(单位:2D像素、3D坐标)*/
minStartRadius: number;
/**最大开始半径(单位:2D像素、3D坐标)*/
maxStartRadius: number;
/**最小结束半径(单位:2D像素、3D坐标)*/
minEndRadius: number;
/**最大结束半径(单位:2D像素、3D坐标)*/
maxEndRadius: number;
/**最小水平开始弧度(单位:2D弧度、3D弧度)*/
minHorizontalStartRadian: number;
/**最大水平开始弧度(单位:2D弧度、3D弧度)*/
maxHorizontalStartRadian: number;
/**最小垂直开始弧度(单位:2D弧度、3D弧度)*/
minVerticalStartRadian: number;
/**最大垂直开始弧度(单位:2D弧度、3D弧度)*/
maxVerticalStartRadian: number;
/**是否使用结束弧度,false为结束时与起始弧度保持一致,true为根据minHorizontalEndRadian、maxHorizontalEndRadian、minVerticalEndRadian、maxVerticalEndRadian计算结束弧度。*/
useEndRadian: boolean;
/**最小水平结束弧度(单位:2D弧度、3D弧度)*/
minHorizontalEndRadian: number;
/**最大水平结束弧度(单位:2D弧度、3D弧度)*/
maxHorizontalEndRadian: number;
/**最小垂直结束弧度(单位:2D弧度、3D弧度)*/
minVerticalEndRadian: number;
/**最大垂直结束弧度(单位:2D弧度、3D弧度)*/
maxVerticalEndRadian: number;
/**最小开始颜色*/
minStartColor: Float32Array;
/**最大开始颜色*/
maxStartColor: Float32Array;
/**最小结束颜色*/
minEndColor: Float32Array;
/**最大结束颜色*/
maxEndColor: Float32Array;
/**false代表RGBA整体插值,true代表RGBA逐分量插值*/
colorComponentInter: boolean;
/**混合模式,待调整,引擎中暂无BlendState抽象*/
blendState: number;
/**发射器类型,"point","box","sphere","ring"*/
emitterType: string;
/**发射器发射速率*/
emissionRate: number;
/**点发射器位置*/
pointEmitterPosition: Float32Array;
/**点发射器位置随机值*/
pointEmitterPositionVariance: Float32Array;
/**点发射器速度*/
pointEmitterVelocity: Float32Array;
/**点发射器速度随机值*/
pointEmitterVelocityAddVariance: Float32Array;
/**盒发射器中心位置*/
boxEmitterCenterPosition: Float32Array;
/**盒发射器尺寸*/
boxEmitterSize: Float32Array;
/**盒发射器速度*/
boxEmitterVelocity: Float32Array;
/**盒发射器速度随机值*/
boxEmitterVelocityAddVariance: Float32Array;
/**球发射器中心位置*/
sphereEmitterCenterPosition: Float32Array;
/**球发射器半径*/
sphereEmitterRadius: number;
/**球发射器速度*/
sphereEmitterVelocity: number;
/**球发射器速度随机值*/
sphereEmitterVelocityAddVariance: number;
/**环发射器中心位置*/
ringEmitterCenterPosition: Float32Array;
/**环发射器半径*/
ringEmitterRadius: number;
/**环发射器速度*/
ringEmitterVelocity: number;
/**环发射器速度随机值*/
ringEmitterVelocityAddVariance: number;
/**环发射器up向量,0代表X轴,1代表Y轴,2代表Z轴*/
ringEmitterUp: number;
/**发射器位置随机值,2D使用*/
positionVariance: Float32Array;
/**
* 创建一个新的 ParticleSettings
类实例。
*
*/
constructor();
private static _defaultSetting;
static checkSetting(setting: any): void;
}
}
declare module laya.particle {
/**
* @private
*/
class ParticleTemplate2D extends ParticleTemplateWebGL implements laya.webgl.submit.ISubmit {
static activeBlendType: number;
x: number;
y: number;
protected _blendFn: Function;
sv: laya.particle.shader.value.ParticleShaderValue;
constructor(parSetting: ParticleSetting);
getRenderType(): number;
releaseRender(): void;
addParticleArray(position: Float32Array, velocity: Float32Array): void;
protected loadContent(): void;
addNewParticlesToVertexBuffer(): void;
renderSubmit(): number;
blend(): void;
dispose(): void;
}
}
declare module laya.particle {
/**
*
* ParticleTemplateBase
类是粒子模板基类
*
*/
class ParticleTemplateBase {
/**
* 粒子配置数据
*/
settings: ParticleSetting;
protected texture: laya.resource.Texture;
/**
* 创建一个新的 ParticleTemplateBase
类实例。
*
*/
constructor();
/**
* 添加一个粒子
* @param position 粒子位置
* @param velocity 粒子速度
*
*/
addParticleArray(position: Float32Array, velocity: Float32Array): void;
}
}
declare module laya.particle {
/**
* @private
*/
class ParticleTemplateCanvas extends ParticleTemplateBase {
/**
* 贴图列表
*/
textureList: ArrayRender
是渲染管理类。它是一个单例,可以使用 Laya.render 访问。
*/
class Render {
static _context: RenderContext;
static _mainCanvas: laya.resource.HTMLCanvas;
static WebGL: any;
static NODE: number;
static WEBGL: number;
static CONCH: number;
/**是否是Flash模式*/
static isFlash: boolean;
/**是否是WebGL模式*/
static isWebGL: boolean;
/** 表示是否是 3D 模式。*/
static is3DMode: boolean;
/**是否是加速器 只读*/
static isConchApp: boolean;
/**加速器模式下设置是否是节点模式 如果是否就是非节点模式 默认为canvas模式 如果设置了isConchWebGL则是webGL模式*/
static isConchNode: boolean;
/**加速器模式下设置是否是WebGL模式*/
static isConchWebGL: boolean;
static optimizeTextureMemory: Function;
/**
* 初始化引擎。
* @param width 游戏窗口宽度。
* @param height 游戏窗口高度。
*/
constructor(width: number, height: number);
/** 目前使用的渲染器。*/
static context: RenderContext;
/** 渲染使用的原生画布引用。 */
static canvas: any;
}
}
declare module laya.renders {
/**
* @private
* 渲染环境
*/
class RenderContext {
/**Math.PI*2的结果缓存 */
static PI2: number;
/**全局x坐标 */
x: number;
/**全局y坐标 */
y: number;
/**当前使用的画布 */
canvas: laya.resource.HTMLCanvas;
/**当前使用的画布上下文 */
ctx: any;
/**销毁当前渲染环境*/
destroy(): void;
constructor(width: number, height: number, canvas?: laya.resource.HTMLCanvas);
drawTexture(tex: laya.resource.Texture, x: number, y: number, width: number, height: number): void;
_drawTexture: Function;
_drawTextures(x: number, y: number, args: ArrayBitmap
是图片资源类。
*/
class Bitmap extends Resource {
protected _source: any;
protected _w: number;
protected _h: number;
useNum: number;
/***
* 宽度。
*/
width: number;
/***
* 高度。
*/
height: number;
/***
* HTML Image 或 HTML Canvas 或 WebGL Texture 。
*/
source: any;
/**
* 创建一个 Bitmap
实例。
*/
constructor();
/**
* 彻底清理资源。
*/
dispose(): void;
}
}
declare module laya.resource {
/**
* @private
* Context扩展类
*/
class Context {
private static _default;
_canvas: HTMLCanvas;
_repaint: boolean;
static __init__(to?: any): void;
setIsMainContext(): void;
font: string;
textBaseline: string;
fillStyle: any;
translate(x: number, y: number): void;
scale(scaleX: number, scaleY: number): void;
drawImage(...args: any[]): void;
getImageData(...args: any[]): any;
measureText(text: string): any;
setTransform(...args: any[]): void;
beginPath(): void;
strokeStyle: any;
globalCompositeOperation: string;
rect(x: number, y: number, width: number, height: number): void;
stroke(): void;
transform(a: number, b: number, c: number, d: number, tx: number, ty: number): void;
save(): void;
restore(): void;
clip(): void;
arcTo(x1: number, y1: number, x2: number, y2: number, r: number): void;
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
lineJoin: string;
lineCap: string;
miterLimit: string;
globalAlpha: number;
clearRect(x: number, y: number, width: number, height: number): void;
drawTextures(tex: Texture, pos: ArrayFileBitmap
是图片文件资源类。
*/
class FileBitmap extends Bitmap {
protected _src: string;
/**
* 文件路径全名。
*/
src: string;
protected _onload: Function;
protected _onerror: Function;
/**
* 载入完成处理函数。
*/
onload: Function;
/**
* 错误处理函数。
*/
onerror: Function;
}
}
declare module laya.resource {
/**
* HTMLCanvas
是 Html Canvas 的代理类,封装了 Canvas 的属性和方法。。请不要直接使用 new HTMLCanvas!
*/
class HTMLCanvas extends Bitmap {
/**
* 根据指定的类型,创建一个 HTMLCanvas
实例。
* @param type 类型。2D、3D。
*/
static create: Function;
/** 2D 模式。*/
static TYPE2D: string;
/** 3D 模式。*/
static TYPE3D: string;
/** 自动模式。*/
static TYPEAUTO: string;
static _createContext: Function;
/**
* 根据指定的类型,创建一个 HTMLCanvas
实例。请不要直接使用 new HTMLCanvas!
* @param type 类型。2D、3D。
*/
constructor(type: string, canvas?: any);
/**
* 清空画布内容。
*/
clear(): void;
/**
* 销毁。
*/
destroy(): void;
/**
* 释放。
*/
release(): void;
/**
* Canvas 渲染上下文。
*/
context: Context;
/**
* @private
* 设置 Canvas 渲染上下文。
* @param context Canvas 渲染上下文。
*/
_setContext(context: Context): void;
/**
* 获取 Canvas 渲染上下文。
* @param contextID 上下文ID.
* @param other
* @return Canvas 渲染上下文 Context 对象。
*/
getContext: Function;
/**
* 获取内存大小。
* @return 内存大小。
*/
getMemSize(): number;
return: any;
asBitmap: boolean;
/**
* 设置宽高。
* @param w 宽度。
* @param h 高度。
*/
size(w: number, h: number): void;
}
}
declare module laya.resource {
/**
* HTMLImage
用于创建 HTML Image 元素。
* @private
*/
class HTMLImage extends FileBitmap {
/**
* 创建一个 HTMLImage
实例。请不要直接使用 new HTMLImage
*/
static create: Function;
protected _recreateLock: boolean;
protected _needReleaseAgain: boolean;
/**
* @inheritDoc
*/
onload: Function;
/**
* @inheritDoc
*/
onerror: Function;
/**
* 创建一个 HTMLImage
实例。请不要直接使用 new HTMLImage
*/
constructor(src: string, def?: any);
protected _init_(src: string, def: any): void;
protected recreateResource(): void;
protected detoryResource(): void;
protected onresize(): void;
}
}
declare module laya.resource {
/**
* @private
*/
class HTMLSubImage extends Bitmap {
static create: Function;
constructor(canvas: any, offsetX: number, offsetY: number, width: number, height: number, atlasImage: any, src: string, allowMerageInAtlas: boolean);
}
}
declare module laya.resource {
/**
* @private
* IDispose
是资源处理类的接口。
*/
interface IDispose {
}
}
declare module laya.resource {
/**
* Resource
资源存取类。
*/
class Resource extends laya.events.EventDispatcher implements IDispose {
static animationCache: any;
static meshCache: any;
static materialCache: any;
private static _uniqueIDCounter;
private static _loadedResources;
private static _isLoadedResourcesSorted;
/**
* 通过索引返回本类型已载入资源。
* @param index 索引。
* @return 资源 Resource
对象。
*/
static getLoadedResourceByIndex(index: number): Resource;
/**
* 本类型已载入资源个数。
*/
static getLoadedResourcesCount(): number;
/**
* 本类型排序后的已载入资源。
*/
static sortedLoadedResourcesByName: ArrayResource
实例。
*/
constructor();
protected recreateResource(): void;
protected detoryResource(): void;
/**
* 激活资源,使用资源前应先调用此函数激活。
* @param force 是否强制创建。
*/
activeResource(force?: boolean): void;
/**
* 释放资源。
* @param force 是否强制释放。
* @return 是否成功释放。
*/
releaseResource(force?: boolean): boolean;
/**
* 设置唯一名字,如果名字重复则自动加上“-copy”。
* @param newName 名字。
*/
setUniqueName(newName: string): void;
/**
* 彻底清理资源。
*注意:会强制解锁清理。
*/ dispose(): void; protected startCreate(): void; protected completeCreate(): void; } } declare module laya.resource { /** *ResourceManager
是资源管理类。它用于资源的载入、获取、销毁。
*/
class ResourceManager implements IDispose {
private static _uniqueIDCounter;
private static _systemResourceManager;
private static _isResourceManagersSorted;
private static _resourceManagers;
/** 当前资源管理器。*/
static currentResourceManager: ResourceManager;
/**
* 系统资源管理器。
*/
static systemResourceManager: ResourceManager;
/**
* @private
* 资源管理类初始化。
*/
static __init__(): void;
/**
* 获取指定索引的资源管理器。
* @param index 索引。
* @return 资源管理器。
*/
static getLoadedResourceManagerByIndex(index: number): ResourceManager;
/**
* 获取资源管理器总个数。
* @return 资源管理器总个数。
*/
static getLoadedResourceManagersCount(): number;
/**
* 排序后的资源管理器列表。
*/
static sortedResourceManagersByName: ArrayResourceManager
实例。
*/
constructor();
/**
* 获取指定索引的资源 Resource 对象。
* @param 索引。
* @return 资源 Resource 对象。
*/
getResourceByIndex(index: number): Resource;
/**
* 获取此管理器所管理的资源个数。
* @return 资源个数。
*/
getResourcesLength(): number;
/**
* 添加指定资源。
* @param resource 需要添加的资源 Resource 对象。
* @return 是否添加成功。
*/
addResource(resource: Resource): boolean;
/**
* 移除指定资源。
* @param resource 需要移除的资源 Resource 对象
* @return 是否移除成功。
*/
removeResource(resource: Resource): boolean;
/**
* 卸载此资源管理器载入的资源。
*/
unload(): void;
/**
* 设置唯一名字。
* @param newName 名字,如果名字重复则自动加上“-copy”。
*/
setUniqueName(newName: string): void;
/** 释放资源。*/
dispose(): void;
/**
* 增加内存。
* @param add 需要增加的内存大小。
*/
addSize(add: number): void;
}
}
declare module laya.resource {
/**
* Texture
是一个纹理处理类。
*/
class Texture extends laya.events.EventDispatcher {
/**默认 UV 信息。*/
static DEF_UV: ArrayTexture
实例。
* @param bitmap 位图资源。
* @param uv UV 数据信息。
*/
constructor(bitmap?: Bitmap, uv?: ArrayTexture
对象。
* @param source 绘图资源 img 或者 Texture 对象。
* @param x 起始绝对坐标 x 。
* @param y 起始绝对坐标 y 。
* @param width 宽绝对值。
* @param height 高绝对值。
* @param offsetX X 轴偏移量(可选)。
* @param offsetY Y 轴偏移量(可选)。
* @param sourceWidth 原始宽度,包括被裁剪的透明区域(可选)。
* @param sourceHeight 原始高度,包括被裁剪的透明区域(可选)。
* @return Texture
对象。
*/
static create(source: any, x: number, y: number, width: number, height: number, offsetX?: number, offsetY?: number, sourceWidth?: number, sourceHeight?: number): Texture;
/**
* 截取Texture的一部分区域,生成新的Texture,如果两个区域没有相交,则返回null
* @param texture 目标Texture
* @param x 相对于目标Texture的x位置
* @param y 相对于目标Texture的y位置
* @param width 截取的宽度
* @param height 截取的高度
* @return 返回一个新的Texture
*/
static createFromTexture(texture: Texture, x: number, y: number, width: number, height: number): Texture;
/**
* 表示是否加载成功,只能表示初次载入成功(通常包含下载和载入),并不能完全表示资源是否可立即使用(资源管理机制释放影响等)。
*/
loaded: boolean;
/**
* 表示资源是否已释放。
*/
released: boolean;
active(): void;
/** 激活并获取资源。*/
source: any;
/**
* 销毁纹理(分直接销毁,跟计数销毁两种)
* @param forceDispose true为强制销毁主纹理,false是通过计数销毁纹理
*/
destroy(forceDispose?: boolean): void;
/** 实际宽度。*/
width: number;
/** 实际高度。*/
height: number;
/**
* 获取当前纹理是否启用了线性采样
*/
/**
* 设置线性采样的状态(目前只能第一次绘制前设置false生效,来关闭线性采样)
*/
isLinearSampling: boolean;
/**
* 获取当前纹理是否启用了纹理平铺
*/
/**
* 通过外部设置是否启用纹理平铺(后面要改成在着色器里计算)
*/
repeat: boolean;
/**
* 加载指定地址的图片。
* @param url 图片地址。
*/
load(url: string): void;
addTextureToAtlas(e?: any): void;
/**
* 获取Texture上的某个区域的像素点
* @param x
* @param y
* @param width
* @param height
* @return 返回像素点集合
*/
getPixels(x: number, y: number, width: number, height: number): ArrayAutoBitmap
类是用于表示位图图像或绘制图形的显示对象。
* 封装了位置,宽高及九宫格的处理,供UI组件使用。
*/ class AutoBitmap extends laya.display.Graphics { private static cmdCaches; private static cacheCount; private static textureCache; autoCacheCmd: boolean; _offset: Array如果设置为null,则在应用任何缩放转换时,将正常缩放整个显示对象。
*数据格式:[上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)]。 *
sizeGrid
的值如下所示:
*
当定义 sizeGrid
属性时,该显示对象被分割到以 sizeGrid
数据中的"上边距,右边距,下边距,左边距" 组成的矩形为基础的具有九个区域的网格中,该矩形定义网格的中心区域。网格的其它八个区域如下所示:
*
Box
类是一个控件容器类。
*/
class Box extends Component implements IBox {
/**@inheritDoc */
dataSource: any;
}
}
declare module laya.ui {
/**
* Button
组件用来表示常用的多态按钮。 Button
组件可显示文本标签、图标或同时显示两者。 *
* 可以是单态,两态和三态,默认三态(up,over,down)。
* * @example 以下示例代码,创建了一个Button
实例。
* Button
实例,并设置为切换按钮。
* Button
类实例。
* @param skin 皮肤资源地址。
* @param label 按钮的文本内容。
*/
constructor(skin?: string, label?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
protected createText(): void;
protected initialize(): void;
protected onMouse(e: laya.events.Event): void;
/**
* 对象的皮肤资源地址。
* 支持单态,两态和三态,用stateNum
属性设置
* 对象的皮肤地址,以字符串表示。
* @see #stateNum */ skin: string; /** *指定对象的状态值,以数字表示。
*默认值为3。此值决定皮肤资源图片的切割方式。
*取值: *
如果值为true,表示该对象处于选中状态。否则该对象处于未选中状态。
*/ selected: boolean; protected state: number; protected changeState(): void; /** * 表示按钮各个状态下的文本颜色。 *格式: "upColor,overColor,downColor,disableColor"。
*/ labelColors: string; /** * 表示按钮各个状态下的描边颜色。 *格式: "upColor,overColor,downColor,disableColor"。
*/ strokeColors: string; /** * 表示按钮文本标签的边距。 *格式:"上边距,右边距,下边距,左边距"。
*/ labelPadding: string; /** * 表示按钮文本标签的字体大小。 * @see laya.display.Text.fontSize() */ labelSize: number; /** *描边宽度(以像素为单位)。
* 默认值0,表示不描边。 * @see laya.display.Text.stroke() */ labelStroke: number; /** *描边颜色,以字符串表示。
* 默认值为 "#000000"(黑色); * @see laya.display.Text.strokeColor() */ labelStrokeColor: string; /** * 表示按钮文本标签是否为粗体字。 * @see laya.display.Text.bold() */ labelBold: boolean; /** * 表示按钮文本标签的字体名称,以字符串形式表示。 * @see laya.display.Text.font() */ labelFont: string; /**标签对齐模式,默认为居中对齐。*/ labelAlign: string; /** * 对象的点击事件处理器函数(无默认参数)。 */ clickHandler: laya.utils.Handler; /** * 按钮文本标签Text
控件。
*/
text: laya.display.Text;
/**
* 当前实例的位图 AutoImage
实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
CheckBox
组件显示一个小方框,该方框内可以有选中标记。
* CheckBox
组件还可以显示可选的文本标签,默认该标签位于 CheckBox 右侧。
* CheckBox
使用 dataSource
赋值时的的默认属性是:selected
。
CheckBox
实例。
* CheckBox
组件实例。
* @param skin 皮肤资源地址。
* @param label 文本标签的内容。
*/
constructor(skin?: string, label?: string);
protected preinitialize(): void;
protected initialize(): void;
/**@inheritDoc */
dataSource: any;
}
}
declare module laya.ui {
/**
* Clip
类是位图切片动画。
Clip
可将一张图片,按横向分割数量 clipX
、竖向分割数量 clipY
,
* 或横向分割每个切片的宽度 clipWidth
、竖向分割每个切片的高度 clipHeight
,
* 从左向右,从上到下,分割组合为一个切片动画。
Clip
实例。
* Clip
示例。
* @param url 资源类库名或者地址
* @param clipX x方向分割个数
* @param clipY y方向分割个数
*/
constructor(url?: string, clipX?: number, clipY?: number);
/**@inheritDoc */
destroy(clearFromCache?: boolean): void;
/**
* 销毁对象并释放加载的皮肤资源。
*/
dispose(): void;
protected createChildren(): void;
protected initialize(): void;
protected _onDisplay(e?: laya.events.Event): void;
/**
* @copy laya.ui.Image#skin
*/
skin: string;
/**X轴(横向)切片数量。*/
clipX: number;
/**Y轴(竖向)切片数量。*/
clipY: number;
/**
* 横向分割时每个切片的宽度,与 clipX
同时设置时优先级高于 clipX
。
*/
clipWidth: number;
/**
* 竖向分割时每个切片的高度,与 clipY
同时设置时优先级高于 clipY
。
*/
clipHeight: number;
protected changeClip(): void;
protected loadComplete(url: string, img: laya.resource.Texture): void;
/**
* 源数据。
*/
sources: Array当前实例的位图 AutoImage
实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
可控制切片动画的播放、停止。
*/ autoPlay: boolean; /** * 表示动画播放间隔时间(以毫秒为单位)。 */ interval: number; /** * 表示动画的当前播放状态。 * 如果动画正在播放中,则为true,否则为flash。 */ isPlaying: boolean; /** * 播放动画。 */ play(): void; protected _loop(): void; /** * 停止动画。 */ stop(): void; /**@inheritDoc */ dataSource: any; /** *AutoBitmap
位图实例。
*/
bitmap: AutoBitmap;
protected _setClipChanged(): void;
}
}
declare module laya.ui {
/**
* ColorPicker
组件将显示包含多个颜色样本的列表,用户可以从中选择颜色。
*
* @example 以下示例代码,创建了一个 ColorPicker
实例。
* ComboBox
组件包含一个下拉列表,用户可以从该列表中选择单个值。
*
* @example 以下示例代码,创建了一个 ComboBox
实例。
* ComboBox
组件实例。
* @param skin 皮肤资源地址。
* @param labels 下拉列表的标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
*/
constructor(skin?: string, labels?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
/**
* @copy laya.ui.Button#skin
*/
skin: string;
protected measureWidth: number;
protected measureHeight: number;
protected changeList(): void;
protected onlistItemMouse(e: laya.events.Event, index: number): void;
protected changeOpen(): void;
/**@inheritDoc */
width: number;
/**@inheritDoc */
height: number;
/**
* 标签集合字符串。
*/
labels: string;
protected changeItem(): void;
/**
* 表示选择的下拉列表项的索引。
*/
selectedIndex: number;
/**
* 改变下拉列表的选择项时执行的处理器(默认返回参数index:int)。
*/
selectHandler: laya.utils.Handler;
/**
* 表示选择的下拉列表项的的标签。
*/
selectedLabel: string;
/**
* 获取或设置没有滚动条的下拉列表中可显示的最大行数。
*/
visibleNum: number;
/**
* 下拉列表项颜色。
* 格式:"悬停或被选中时背景颜色,悬停或被选中时标签颜色,标签颜色,边框颜色,背景颜色"
*/ itemColors: string; /** * 下拉列表项标签的字体大小。 */ itemSize: number; /** * 表示下拉列表的打开状态。 */ isOpen: boolean; protected removeList(e: laya.events.Event): void; /** * 滚动条皮肤。 */ scrollBarSkin: string; /** *当前实例的位图 AutoImage
实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
ComboBox
组件所包含的 VScrollBar
滚动条组件的引用。
*/
scrollBar: VScrollBar;
/**
* 获取对 ComboBox
组件所包含的 Button
组件的引用。
*/
button: Button;
/**
* 获取对 ComboBox
组件所包含的 List
列表组件的引用。
*/
list: List;
/**@inheritDoc */
dataSource: any;
/**
* 获取或设置对 ComboBox
组件所包含的 Button
组件的文本标签颜色。
* 格式:upColor,overColor,downColor,disableColor
*/ labelColors: string; /** * 获取或设置对ComboBox
组件所包含的 Button
组件的文本边距。
* 格式:上边距,右边距,下边距,左边距
*/ labelPadding: string; /** * 获取或设置对ComboBox
组件所包含的 Button
组件的标签字体大小。
*/
labelSize: number;
/**
* 表示按钮文本标签是否为粗体字。
* @see laya.display.Text#bold
*/
labelBold: boolean;
/**
* 表示按钮文本标签的字体名称,以字符串形式表示。
* @see laya.display.Text#font
*/
labelFont: string;
/**
* 表示按钮的状态值。
* @see laya.ui.Button#stateNum
*/
stateNum: number;
}
}
declare module laya.ui {
/**
* Component
是ui控件类的基类。
* 生命周期:preinitialize > createChildren > initialize > 组件构造函数
*/ class Component extends laya.display.Sprite implements IComponent { protected _layout: LayoutStyle; protected _dataSource: any; protected _toolTip: any; protected _tag: any; protected _disabled: boolean; protected _gray: boolean; /** *创建一个新的 Component
实例。
延迟运行指定的函数。
*在控件被显示在屏幕之前调用,一般用于延迟计算数据。
* @param method 要执行的函数的名称。例如,functionName。 * @param args 传递给method
函数的可选参数列表。
*
* @see #runCallLater()
*/
callLater(method: Function, args?: Array如果有需要延迟调用的函数(通过 callLater
函数设置),则立即执行延迟调用函数。
表示显示对象的宽度,以像素为单位。
*注:当值为0时,宽度为自适应大小。
*/ width: number; /** *对象的显示宽度(以像素为单位)。
*/ displayWidth: number; protected measureWidth: number; protected commitMeasure(): void; /** *表示显示对象的高度,以像素为单位。
*注:当值为0时,高度为自适应大小。
* @return */ height: number; /** *对象的显示高度(以像素为单位)。
*/ displayHeight: number; protected measureHeight: number; /**@inheritDoc */ scaleX: number; /**@inheritDoc */ scaleY: number; protected changeSize(): void; /** *数据赋值,通过对UI赋值来控制UI显示逻辑。
*简单赋值会更改组件的默认属性,使用大括号可以指定组件的任意属性进行赋值。
* @example 以下示例中,label1、checkbox1
分别为示例的name属性值。
从组件顶边到其内容区域顶边之间的垂直距离(以像素为单位)。
*/ top: number; /** *从组件底边到其内容区域底边之间的垂直距离(以像素为单位)。
*/ bottom: number; /** *从组件左边到其内容区域左边之间的水平距离(以像素为单位)。
*/ left: number; /** *从组件右边到其内容区域右边之间的水平距离(以像素为单位)。
*/ right: number; /** *在父容器中,此对象的水平方向中轴线与父容器的水平方向中心线的距离(以像素为单位)。
*/ centerX: number; /** *在父容器中,此对象的垂直方向中轴线与父容器的垂直方向中心线的距离(以像素为单位)。
*/ centerY: number; /**X轴锚点,值为0-1*/ anchorX: number; /**Y轴锚点,值为0-1*/ anchorY: number; /** *对象的标签。
* @internal 冗余字段,可以用来储存数据。 */ tag: any; protected onCompResize(): void; protected resetLayoutX(): void; protected resetLayoutY(): void; /** *鼠标悬停提示。
*可以赋值为文本 String
或函数 Handler
,用来实现自定义样式的鼠标提示和参数携带等。
Dialog
组件是一个弹出对话框。
*
* @example 以下示例代码,创建了一个 Dialog
实例。
* 如果值为true,则居中弹出。
*/ popupCenter: boolean; /** * 对话框被关闭时会触发的回调函数处理器。 * *回调函数参数为用户点击的按钮名字name:String。
*/ closeHandler: laya.utils.Handler; protected _dragArea: laya.maths.Rectangle; protected initialize(): void; protected onClick(e: laya.events.Event): void; /** * 显示对话框(以非模式窗口方式显示)。 * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。 */ show(closeOther?: boolean): void; /** * 显示对话框(以模式窗口方式显示)。 * @param closeOther 是否关闭其它的对话框。若值为true则关闭其它对话框。 */ popup(closeOther?: boolean): void; /** * 关闭对话框。 * @param type 如果是点击默认关闭按钮触发,则传入关闭按钮的名字(name),否则为null。 */ close(type?: string): void; /**关闭所有对话框。*/ static closeAll(): void; /** * 用来指定对话框的拖拽区域。默认值为"0,0,0,0"。 *格式:构成一个矩形所需的 x,y,width,heith 值,用逗号连接为字符串。 * 例如:"0,0,100,200"。 *
* * @see #includeExamplesSummary 请参考示例 * @return */ dragArea: string; /** * 弹出框的显示状态;如果弹框处于显示中,则为true,否则为false; * @return */ isPopup: boolean; } class DialogManager extends laya.display.Sprite { dialogLayer: laya.display.Sprite; modalLayer: laya.display.Sprite; maskLayer: laya.display.Sprite; /** * 创建一个新的DialogManager
类实例。
*/
DialogManager(): any;
/**
* 显示对话框(非模式窗口类型)。
* @param dialog 需要显示的对象框 Dialog
实例。
* @param closeOther 是否关闭其它对话框,若值为ture,则关闭其它的对话框。
*/
show(dialog: laya.ui.Dialog, closeOther?: boolean): void;
/**
* 显示对话框(模式窗口类型)。
* @param dialog 需要显示的对象框 Dialog
实例。
* @param closeOther 是否关闭其它对话框,若值为ture,则关闭其它的对话框。
*/
popup(dialog: laya.ui.Dialog, closeOther?: boolean): void;
/**
* 关闭对话框。
* @param dialog 需要关闭的对象框 Dialog
实例。
*/
close(dialog: laya.ui.Dialog): void;
/**
* 关闭所有的对话框。
*/
closeAll(): void;
}
}
declare module laya.ui {
/**
* 关键帧动画播放类
*
*/
class FrameClip extends laya.display.FrameAnimation {
/**
* 创建一个 FrameClip
实例。
*/
constructor();
}
}
declare module laya.ui {
/**
* Group
是一个可以自动布局的项集合控件。
* Group
的默认项对象为 Button
类实例。
* Group
是 Tab
和 RadioGroup
的基类。
Group
的选择项时执行的处理器,(默认返回参数: 项索引(index:int))。
*/
selectHandler: laya.utils.Handler;
protected _items: ArrayGroup
类实例。
* @param labels 标签集字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
* @param skin 皮肤。
*/
constructor(labels?: string, skin?: string);
protected preinitialize(): void;
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
/**
* 添加一个项对象,返回此项对象的索引id。
*
* @param item 需要添加的项对象。
* @param autoLayOut 是否自动布局,如果为true,会根据 direction
和 space
属性计算item的位置。
* @return
*/
addItem(item: ISelect, autoLayOut?: boolean): number;
/**
* 删除一个项对象。
* @param item 需要删除的项对象。
* @param autoLayOut 是否自动布局,如果为true,会根据 direction
和 space
属性计算item的位置。
*/
delItem(item: ISelect, autoLayOut?: boolean): void;
/**
* 初始化项对象们。
*/
initItems(): void;
protected itemClick(index: number): void;
/**
* 表示当前选择的项索引。默认值为-1。
*/
selectedIndex: number;
protected setSelect(index: number, selected: boolean): void;
/**
* @copy laya.ui.Image#skin
*/
skin: string;
/**
* 标签集合字符串。以逗号做分割,如"item0,item1,item2,item3,item4,item5"。
*/
labels: string;
protected createItem(skin: string, label: string): laya.display.Sprite;
/**
* @copy laya.ui.Button#labelColors()
*/
labelColors: string;
/**
* 描边宽度(以像素为单位)。
* 默认值0,表示不描边。 * @see laya.display.Text.stroke() */ labelStroke: number; /** *描边颜色,以字符串表示。
* 默认值为 "#000000"(黑色); * @see laya.display.Text.strokeColor() */ labelStrokeColor: string; /** *表示各个状态下的描边颜色。
* @see laya.display.Text.strokeColor() */ strokeColors: string; /** * 表示按钮文本标签的字体大小。 */ labelSize: number; /** * 表示按钮文本标签的字体大小。 */ stateNum: number; /** * 表示按钮文本标签是否为粗体字。 */ labelBold: boolean; /** * 表示按钮文本标签的边距。 *格式:"上边距,右边距,下边距,左边距"。
*/ labelPadding: string; /** * 布局方向。 *默认值为"horizontal"。
*取值: *
VBox
是一个垂直布局容器类。
*/
class HBox extends LayoutBox {
/**
* 无对齐。
*/
static NONE: string;
/**
* 居顶部对齐。
*/
static TOP: string;
/**
* 居中对齐。
*/
static MIDDLE: string;
/**
* 居底部对齐。
*/
static BOTTOM: string;
protected sortItem(items: ArrayHScrollBar
(水平 ScrollBar
)控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
* @example 以下示例代码,创建了一个 HScrollBar
实例。
* HSlider
控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
* HSlider
控件采用水平方向。滑块轨道从左向右扩展,而标签位于轨道的顶部或底部。
HSlider
实例。
* HSlider
类实例。
* @param skin 皮肤。
*/
constructor(skin?: string);
}
}
declare module laya.ui {
/**容器接口,实现了编辑器容器类型。*/
interface IBox extends IComponent {
}
}
declare module laya.ui {
/**组件接口,实现了编辑器组件类型。*/
interface IComponent {
}
}
declare module laya.ui {
/**
* Item接口。
*/
interface IItem {
}
}
declare module laya.ui {
/**
* Image
类是用于表示位图图像或绘制图形的显示对象。
* @example 以下示例代码,创建了一个新的 Image
实例,设置了它的皮肤、位置信息,并添加到舞台上。
* Image
实例。
* @param skin 皮肤资源地址。
*/
constructor(skin?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
/**
* 销毁对象并释放加载的皮肤资源。
*/
dispose(): void;
protected createChildren(): void;
/**
* 对象的皮肤地址,以字符串表示。
*如果资源未加载,则先加载资源,加载完成后应用于此对象。
* 注意:资源加载完成后,会自动缓存至资源库中。 */ skin: string; /** * @copy laya.ui.AutoBitmap#source */ source: laya.resource.Texture; /** * 资源分组。 */ group: string; protected setSource(url: string, img?: any): void; protected measureWidth: number; protected measureHeight: number; /**@inheritDoc */ width: number; /**@inheritDoc */ height: number; /** *当前实例的位图 AutoImage
实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
IRender
接口,实现设置项的渲染类型。
*/
interface IRender {
}
}
declare module laya.ui {
/**
* ISelect
接口,实现对象的 selected
属性和 clickHandler
选择回调函数处理器。
*/
interface ISelect {
}
}
declare module laya.ui {
/**
* Label
类用于创建显示对象以显示文本。
Label
实例。
* Label
实例。
* @param text 文本内容字符串。
*/
constructor(text?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
/**
* 当前文本内容字符串。
* @see laya.display.Text.text
*/
text: string;
/**@copy laya.display.Text#changeText()
**/
changeText(text: string): void;
/**
* @copy laya.display.Text#wordWrap
*/
/**
* @copy laya.display.Text#wordWrap
*/
wordWrap: boolean;
/**
* @copy laya.display.Text#color
*/
color: string;
/**
* @copy laya.display.Text#font
*/
font: string;
/**
* @copy laya.display.Text#align
*/
align: string;
/**
* @copy laya.display.Text#valign
*/
valign: string;
/**
* @copy laya.display.Text#bold
*/
bold: boolean;
/**
* @copy laya.display.Text#italic
*/
italic: boolean;
/**
* @copy laya.display.Text#leading
*/
leading: number;
/**
* @copy laya.display.Text#fontSize
*/
fontSize: number;
/**
* 边距信息
*"上边距,右边距,下边距 , 左边距(边距以像素为单位)"
* @see laya.display.Text.padding */ padding: string; /** * @copy laya.display.Text#bgColor */ bgColor: string; /** * @copy laya.display.Text#borderColor */ borderColor: string; /** * @copy laya.display.Text#stroke */ stroke: number; /** * @copy laya.display.Text#strokeColor */ strokeColor: string; /** * 文本控件实体Text
实例。
*/
textField: laya.display.Text;
protected measureWidth: number;
protected measureHeight: number;
/**
* @inheritDoc
*/
/**
* @inheritDoc
*/
width: number;
/**
* @inheritDoc
*/
/**
* @inheritDoc
*/
height: number;
/**@inheritDoc */
dataSource: any;
/**
* @copy laya.display.Text#overflow
*/
/**
* @copy laya.display.Text#overflow
*/
overflow: string;
/**
* @copy laya.display.Text#underline
*/
/**
* @copy laya.display.Text#underline
*/
underline: boolean;
/**
* @copy laya.display.Text#underlineColor
*/
/**
* @copy laya.display.Text#underlineColor
*/
underlineColor: string;
}
}
declare module laya.ui {
/**
* LayoutBox
是一个布局容器类。
*/
class LayoutBox extends Box {
protected _space: number;
protected _align: string;
protected _itemChanged: boolean;
/** @inheritDoc */
addChild(child: laya.display.Node): laya.display.Node;
/** @inheritDoc */
addChildAt(child: laya.display.Node, index: number): laya.display.Node;
/** @inheritDoc */
removeChild(child: laya.display.Node): laya.display.Node;
/** @inheritDoc */
removeChildAt(index: number): laya.display.Node;
/** 刷新。*/
refresh(): void;
protected changeItems(): void;
/** 子对象的间隔。*/
space: number;
/** 子对象对齐方式。*/
align: string;
protected sortItem(items: ArrayLayoutStyle
是一个布局样式类。
*/
class LayoutStyle {
/**一个已初始化的 LayoutStyle
实例。*/
static EMPTY: LayoutStyle;
/**表示距顶边的距离(以像素为单位)。*/
top: number;
/**表示距底边的距离(以像素为单位)。*/
bottom: number;
/**表示距左边的距离(以像素为单位)。*/
left: number;
/**表示距右边的距离(以像素为单位)。*/
right: number;
/**表示距水平方向中心轴的距离(以像素为单位)。*/
centerX: number;
/**表示距垂直方向中心轴的距离(以像素为单位)。*/
centerY: number;
/**X锚点,值为0-1。*/
anchorX: number;
/**Y锚点,值为0-1。*/
anchorY: number;
/**一个布尔值,表示是否有效。*/
enable: boolean;
}
}
declare module laya.ui {
/**
* List
控件可显示项目列表。默认为垂直方向列表。可通过UI编辑器自定义列表。
*
* @example 以下示例代码,创建了一个 List
实例。
* List
的选择项时执行的处理器,(默认返回参数: 项索引(index:number))。*/
selectHandler: laya.utils.Handler;
/**单元格渲染处理器(默认返回参数cell:Box,index:number)。*/
renderHandler: laya.utils.Handler;
/**单元格鼠标事件处理器(默认返回参数e:Event,index:number)。*/
mouseHandler: laya.utils.Handler;
/**指定是否可以选择,若值为true则可以选择,否则不可以选择。 @default false*/
selectEnable: boolean;
/**最大分页数。*/
totalPage: number;
protected _content: Box;
protected _scrollBar: ScrollBar;
protected _itemRender: any;
protected _repeatX: number;
protected _repeatY: number;
protected _repeatX2: number;
protected _repeatY2: number;
protected _spaceX: number;
protected _spaceY: number;
protected _cells: ArrayList
组件所包含的内容容器 Box
组件的引用。
*/
content: Box;
/**
* 垂直方向滚动条皮肤。
*/
vScrollBarSkin: string;
/**
* 水平方向滚动条皮肤。
*/
hScrollBarSkin: string;
/**
* 获取对 List
组件所包含的滚动条 ScrollBar
组件的引用。
*/
scrollBar: ScrollBar;
/**
* 单元格渲染器。
* 取值: *
以(0,0,width参数,height参数)组成的矩形区域为可视区域。
* @param width 可视区域宽度。 * @param height 可视区域高度。 */ setContentSize(width: number, height: number): void; protected onCellMouse(e: laya.events.Event): void; protected changeCellState(cell: Box, visable: boolean, index: number): void; protected changeSize(): void; protected onScrollBarChange(e?: laya.events.Event): void; /** * 表示当前选择的项索引。 */ selectedIndex: number; protected changeSelectStatus(): void; /** * 当前选中的单元格数据源。 */ selectedItem: any; /** * 获取或设置当前选择的单元格对象。 */ selection: Box; /** * 当前显示的单元格列表的开始索引。 */ startIndex: number; protected renderItems(from?: number, to?: number): void; protected renderItem(cell: Box, index: number): void; /** * 列表数据源。 */ array: Array滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。
* @param index 单元格在数据列表中的索引。 */ scrollTo(index: number): void; /** *缓动滚动列表,以设定的数据索引对应的单元格为当前可视列表的第一项。
* @param index 单元格在数据列表中的索引。 * @param time 缓动时间。 * @param complete 缓动结束回掉 */ tweenTo(index: number, time?: number, complete?: laya.utils.Handler): void; protected _setCellChanged(): void; } } declare module laya.ui { /** *Panel
是一个面板容器类。
*/
class Panel extends Box {
protected _content: Box;
protected _vScrollBar: VScrollBar;
protected _hScrollBar: HScrollBar;
protected _scrollChanged: boolean;
/**
* 创建一个新的 Panel
类实例。
* 在 Panel
构造函数中设置属性width、height的值都为100。
滚动内容容器至设定的垂直、水平方向滚动条位置。
* @param x 水平方向滚动条属性value值。滚动条位置数字。 * @param y 垂直方向滚动条属性value值。滚动条位置数字。 */ scrollTo(x?: number, y?: number): void; /** * 刷新滚动内容。 */ refresh(): void; /**@inheritDoc */ cacheAs: string; protected _setScrollChanged(): void; } } declare module laya.ui { /** *ProgressBar
组件显示内容的加载进度。
* @example 以下示例代码,创建了一个新的 ProgressBar
实例,设置了它的皮肤、位置、宽高、网格等信息,并添加到舞台上。
* ProgressBar
实例的 value
属性发生变化时的函数处理器。
* 默认返回参数value
属性(进度值)。
ProgressBar
类实例。
* @param skin 皮肤地址。
*/
constructor(skin?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
/**
* @copy laya.ui.Image#skin
*/
skin: string;
protected measureWidth: number;
protected measureHeight: number;
/**
* 当前的进度量。
* 取值:介于0和1之间。
*/ value: number; protected changeValue(): void; /** * 获取进度条对象。 */ bar: laya.ui.Image; /** * 获取背景条对象。 */ bg: laya.ui.Image; /** *当前 ProgressBar
实例的进度条背景位图( Image
实例)的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
Radio
控件使用户可在一组互相排斥的选择中做出一种选择。
* 用户一次只能选择 Radio
组中的一个成员。选择未选中的组成员将取消选择该组中当前所选的 Radio
控件。
* @see laya.ui.RadioGroup
*/
class Radio extends laya.ui.Button {
protected _value: any;
/**
* 创建一个新的 Radio
类实例。
* @param skin 皮肤。
* @param label 标签。
*/
constructor(skin?: string, label?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected preinitialize(): void;
protected initialize(): void;
protected onClick(e: laya.events.Event): void;
/**
* 获取或设置 Radio
关联的可选用户定义值。
*/
value: any;
}
}
declare module laya.ui {
/**
* RadioGroup
控件定义一组 Radio
控件,这些控件相互排斥;
* 因此,用户每次只能选择一个 Radio
控件。
*
* @example 以下示例代码,创建了一个 RadioGroup
实例。
* ScrollBar
组件是一个滚动条组件。
* 当数据太多以至于显示区域无法容纳时,最终用户可以使用 ScrollBar
组件控制所显示的数据部分。
滚动条由四部分组成:两个箭头按钮、一个轨道和一个滑块。
* * * @see laya.ui.VScrollBar * @see laya.ui.HScrollBar */ class ScrollBar extends Component { /**滚动变化时回调,回传value参数。*/ changeHandler: laya.utils.Handler; /**是否缩放滑动条,默认值为true。 */ scaleBar: boolean; /**一个布尔值,指定是否自动隐藏滚动条(无需滚动时),默认值为false。*/ autoHide: boolean; /**橡皮筋效果极限距离,0为没有橡皮筋效果。*/ elasticDistance: number; /**橡皮筋回弹时间,单位为毫秒。*/ elasticBackTime: number; /**上按钮 */ upButton: Button; /**下按钮 */ downButton: Button; /**滑条 */ slider: Slider; protected _showButtons: boolean; protected _scrollSize: number; protected _skin: string; protected _thumbPercent: number; protected _target: laya.display.Sprite; protected _lastPoint: laya.maths.Point; protected _lastOffset: number; protected _checkElastic: boolean; protected _isElastic: boolean; protected _value: number; protected _hide: boolean; protected _clickOnly: boolean; protected _offsets: ArrayScrollBar
实例。
* @param skin 皮肤资源地址。
*/
constructor(skin?: string);
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
protected initialize(): void;
protected onSliderChange(): void;
protected onButtonMouseDown(e: laya.events.Event): void;
protected startLoop(isUp: boolean): void;
protected slide(isUp: boolean): void;
protected onStageMouseUp(e: laya.events.Event): void;
/**
* @copy laya.ui.Image#skin
*/
skin: string;
protected changeScrollBar(): void;
protected changeSize(): void;
protected resetButtonPosition(): void;
protected measureWidth: number;
protected measureHeight: number;
/**
* 设置滚动条信息。
* @param min 滚动条最小位置值。
* @param max 滚动条最大位置值。
* @param value 滚动条当前位置值。
*/
setScroll(min: number, max: number, value: number): void;
/**
* 获取或设置表示最高滚动位置的数字。
*/
max: number;
/**
* 获取或设置表示最低滚动位置的数字。
*/
min: number;
/**
* 获取或设置表示当前滚动位置的数字。
*/
value: number;
/**
* 一个布尔值,指示滚动条是否为垂直滚动。如果值为true,则为垂直滚动,否则为水平滚动。
* 默认值为:true。
*/ isVertical: boolean; /** *当前实例的 Slider
实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
Slider
控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
* 滑块的当前值由滑块端点(对应于滑块的最小值和最大值)之间滑块的相对位置确定。
*滑块允许最小值和最大值之间特定间隔内的值。滑块还可以使用数据提示显示其当前值。
* * @see laya.ui.HSlider * @see laya.ui.VSlider */ class Slider extends Component { static label: Label; /** * 数据变化处理器。 *默认回调参数为滑块位置属性 value
属性值:Number 。
默认值为:true。
* @default true */ isVertical: boolean; /** * 一个布尔值,指示是否显示标签。 * @default true */ showLabel: boolean; protected _allowClickBack: boolean; protected _max: number; protected _min: number; protected _tick: number; protected _value: number; protected _skin: string; protected _bg: Image; protected _bar: Button; protected _tx: number; protected _ty: number; protected _maxMove: number; protected _globalSacle: laya.maths.Point; /** * 创建一个新的Slider
类示例。
* @param skin 皮肤。
*/
constructor(skin?: string);
/**
*@inheritDoc
*/
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
protected initialize(): void;
protected onBarMouseDown(e: laya.events.Event): void;
protected showValueText(): void;
protected hideValueText(): void;
protected sendChangeEvent(type?: string): void;
/**
* @copy laya.ui.Image#skin
* @return
*/
skin: string;
protected setBarPoint(): void;
protected measureWidth: number;
protected measureHeight: number;
protected changeSize(): void;
/**
* 当前实例的背景图( Image
)和滑块按钮( Button
)实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
Slider
的 value
属性值。
*/
allowClickBack: boolean;
protected onBgMouseDown(e: laya.events.Event): void;
/**@inheritDoc */
dataSource: any;
/**
* 表示滑块按钮的引用。
*/
bar: Button;
}
}
declare module laya.ui {
/**
* Styles
定义了组件常用的样式属性。
*/
class Styles {
/**
* 默认九宫格信息。
* @see laya.ui.AutoBitmap#sizeGrid
*/
static defaultSizeGrid: Array格式:[上边距,右边距,下边距,左边距]。
*/ static labelPadding: Array格式:[上边距,右边距,下边距,左边距]。
*/ static inputLabelPadding: Array格式:[upColor,overColor,downColor,disableColor]。
*/ static buttonLabelColors: Array格式:[overBgColor,overLabelColor,outLabelColor,borderColor,bgColor]。
*/ static comboBoxItemColors: ArrayTab
组件用来定义选项卡按钮组。 *
* @internal 属性:selectedIndex
的默认值为-1。
Tab
实例。
* TextArea
类用于创建显示对象以显示和输入文本。
* @example 以下示例代码,创建了一个 TextArea
实例。
* 创建一个新的 TextArea
示例。
TextInput
类用于创建显示对象以显示和输入文本。
*
* @example 以下示例代码,创建了一个 TextInput
实例。
* TextInput
类实例。
* @param text 文本内容。
*/
constructor(text?: string);
protected preinitialize(): void;
/**@inheritDoc */
destroy(destroyChild?: boolean): void;
protected createChildren(): void;
protected initialize(): void;
/**
* 表示此对象包含的文本背景 AutoBitmap
组件实例。
*/
bg: laya.ui.AutoBitmap;
/**
* @copy laya.ui.Image#skin
*/
skin: string;
/**
* 当前实例的背景图( AutoBitmap
)实例的有效缩放网格数据。
数据格式:"上边距,右边距,下边距,左边距,是否重复填充(值为0:不重复填充,1:重复填充)",以逗号分隔。 *
指示当前是否是文本域。
* 值为true表示当前是文本域,否则不是文本域。 */ multiline: boolean; /** * 设置可编辑状态。 */ editable: boolean; /** * 设置原生input输入框的x坐标偏移。 */ inputElementXAdjuster: number; /** * 设置原生input输入框的y坐标偏移。 */ inputElementYAdjuster: number; /**选中输入框内的文本。*/ select(): void; /**限制输入的字符。*/ restrict: string; /** * @copy laya.display.Input#prompt */ prompt: string; /** * @copy laya.display.Input#promptColor */ promptColor: string; /** * @copy laya.display.Input#maxChars */ maxChars: number; /** * @copy laya.display.Input#focus */ focus: boolean; /** * @copy laya.display.Input#type */ type: string; /** * @copy laya.display.Input#asPassword */ asPassword: boolean; setSelection(startIndex: number, endIndex: number): void; } } declare module laya.ui { /**鼠标提示管理类*/ class TipManager extends laya.ui.Component { static offsetX: number; static offsetY: number; static tipTextColor: string; static tipBackColor: string; static tipDelay: number; constructor(); /**关闭所有鼠标提示*/ closeAll(): void; /** * 显示显示对象类型的tip */ showDislayTip(tip: laya.display.Sprite): void; /**默认鼠标提示函数*/ defaultTipHandler: Function; } } declare module laya.ui { /** *Tree
控件使用户可以查看排列为可扩展树的层次结构数据。
*
* @example 以下示例代码,创建了一个 Tree
实例。
* Tree
类实例。
* 在 Tree
构造函数中设置属性width、height的值都为200。
取值: *
List
实例对象。
*/
list: List;
/**
* 此对象包含的List
实例的单元格渲染器。
* 取值: *
默认返回参数(e:Event,index:int)。
*/ mouseHandler: laya.utils.Handler; /** *Tree
实例的渲染处理器。
*/
renderHandler: laya.utils.Handler;
/**
* 左侧缩进距离(以像素为单位)。
*/
spaceLeft: number;
/**
* 每一项之间的间隔距离(以像素为单位)。
*/
spaceBottom: number;
/**
* 表示当前选择的项索引。
*/
selectedIndex: number;
/**
* 当前选中的项对象的数据源。
*/
selectedItem: any;
/**
* @inheritDoc
*/
width: number;
/**@inheritDoc */
height: number;
protected getArray(): Arraypath
属性值。
*/
selectedPath: string;
/**
* 更新项列表,显示指定键名的数据项。
* @param key 键名。
*/
filter(key: string): void;
}
}
declare module laya.ui {
/**
* UIEvent
类用来定义UI组件类的事件类型。
*/
class UIEvent extends laya.events.Event {
/**
* 显示提示信息。
*/
static SHOW_TIP: string;
/**
* 隐藏提示信息。
*/
static HIDE_TIP: string;
}
}
declare module laya.ui {
/**
* UIUtils
是文本工具集。
*/
class UIUtils {
/**
* 用字符串填充数组,并返回数组副本。
* @param arr 源数组对象。
* @param str 用逗号连接的字符串。如"p1,p2,p3,p4"。
* @param type 如果值不为null,则填充的是新增值得类型。
* @return 填充后的数组。
*/
static fillArray(arr: ArrayVBox
是一个垂直布局容器类。
*/
class VBox extends LayoutBox {
/**
* 无对齐。
*/
static NONE: string;
/**
* 左对齐。
*/
static LEFT: string;
/**
* 居中对齐。
*/
static CENTER: string;
/**
* 右对齐。
*/
static RIGHT: string;
protected changeItems(): void;
}
}
declare module laya.ui {
/**
* View
是一个视图类。
* @internal View
用于扩展组件及修改组件对应关系。
* @param key 组件类的关键字。 * @param compClass 组件类对象。 */ static regComponent(key: string, compClass: any): void; /** * 注册UI视图类的逻辑处理类。 * @internal 注册runtime解析。 * @param key UI视图类的关键字。 * @param compClass UI视图类对应的逻辑处理类。 */ static regViewRuntime(key: string, compClass: any): void; } } declare module laya.ui { /** *ViewStack
类用于视图堆栈类,用于视图的显示等设置处理。
*/
class ViewStack extends laya.ui.Box implements IItem {
protected _items: Arrayname
属性。
* @param view 需要添加的视图对象。
*/
addItem(view: laya.display.Node): void;
/**
* 初始化视图对象集合。
*/
initItems(): void;
/**
* 表示当前视图索引。
*/
selectedIndex: number;
protected setSelect(index: number, selected: boolean): void;
/**
* 获取或设置当前选择的项对象。
*/
selection: laya.display.Node;
/**
* 索引设置处理器。
* 默认回调参数:index:int
*/ setIndexHandler: laya.utils.Handler; protected setIndex(index: number): void; /** * 视图集合数组。 */ items: ArrayVScrollBar
(垂直 ScrollBar
)控件,可以在因数据太多而不能在显示区域完全显示时控制显示的数据部分。
*
* @example 以下示例代码,创建了一个 VScrollBar
实例。
* VSlider
控件,用户可以通过在滑块轨道的终点之间移动滑块来选择值。
* VSlider
控件采用垂直方向。滑块轨道从下往上扩展,而标签位于轨道的左右两侧。
VSlider
实例。
* Browser
是浏览器代理类。封装浏览器及原生 js 提供的一些功能。
*/
class Browser {
private static _window;
private static _document;
private static _container;
/** 浏览器代理信息。*/
static userAgent: string;
private static u;
/** 表示是否在 ios 设备。*/
static onIOS: boolean;
/** 表示是否在移动设备。*/
static onMobile: boolean;
/** 表示是否在 iphone设备。*/
static onIPhone: boolean;
/** 表示是否在 ipad 设备。*/
static onIPad: boolean;
/** 表示是否在 andriod设备。*/
static onAndriod: boolean;
/** 表示是否在 Windows Phone 设备。*/
static onWP: boolean;
/** 表示是否在 QQ 浏览器。*/
static onQQBrowser: boolean;
/** 表示是否在移动端 QQ 或 QQ 浏览器。*/
static onMQQBrowser: boolean;
/** 表示是否在移动端 Safari。*/
static onSafari: boolean;
/** 微信内*/
static onWeiXin: boolean;
/** 表示是否在 PC 端。*/
static onPC: boolean;
/** 表示是否是 HTTP 协议。*/
static httpProtocol: boolean;
static webAudioEnabled: boolean;
static soundType: string;
static enableTouch: boolean;
/** 全局画布实例(非主画布)。*/
static canvas: laya.resource.HTMLCanvas;
/** 全局画布上绘图的环境(非主画布)。 */
static context: laya.resource.Context;
static __init__(): void;
/**
* 创建浏览器原生节点。
* @param type 节点类型。
* @return 创建的节点对象的引用。
*/
static createElement(type: string): any;
/**
* 返回对拥有指定 id 的第一个对象的引用。
* @param type 节点id。
* @return 节点对象。
*/
static getElementById(type: string): any;
/**
* 移除浏览器原生节点对象。
* @param type 节点对象。
*/
static removeElement(ele: any): void;
/**
* 获取浏览器当前时间戳,单位为毫秒。
*/
static now(): number;
/** 浏览器可视宽度。*/
static clientWidth: number;
/** 浏览器可视高度。*/
static clientHeight: number;
/** 浏览器物理宽度,。*/
static width: number;
/** 浏览器物理高度。*/
static height: number;
/** 设备像素比。*/
static pixelRatio: number;
/**画布容器,用来盛放画布的容器。方便对画布进行控制*/
static container: any;
/** 浏览器原生 window 对象的引用。*/
static window: any;
/** 浏览器原生 document 对象的引用。*/
static document: any;
}
}
declare module laya.utils {
/**
*
* Byte
类提供用于优化读取、写入以及处理二进制数据的方法和属性。
*/
class Byte {
/**
* 表示多字节数字的最高有效字节位于字节序列的最前面。
*/
static BIG_ENDIAN: string;
/**
* 表示多字节数字的最低有效字节位于字节序列的最前面。
*/
static LITTLE_ENDIAN: string;
protected _xd_: boolean;
protected _d_: any;
protected _u8d_: any;
protected _pos_: number;
protected _length: number;
private static _sysEndian;
/**
* 获取系统的字节存储顺序。
* @return 字节存储顺序。
*/
static getSystemEndian(): string;
/**
* 创建一个 Byte
类的实例。
* @param data 用于指定元素的数目、类型化数组、ArrayBuffer。
*/
constructor(data?: any);
/**
* 获取此对象的 ArrayBuffer数据,数据只包含有效数据部分 。
*/
buffer: ArrayBuffer;
/**
* 字节顺序。
*/
endian: string;
/**
* 字节长度。
*/
length: number;
/**
* 读取字符型值。
* @return
*/
getString(): string;
/**
* 从指定的位置读取指定长度的数据用于创建一个 Float32Array 对象并返回此对象。
* @param start 开始位置。
* @param len 需要读取的字节长度。
* @return 读出的 Float32Array 对象。
*/
getFloat32Array(start: number, len: number): any;
/**
* 从指定的位置读取指定长度的数据用于创建一个 Uint8Array 对象并返回此对象。
* @param start 开始位置。
* @param len 需要读取的字节长度。
* @return 读出的 Uint8Array 对象。
*/
getUint8Array(start: number, len: number): Uint8Array;
/**
* 从指定的位置读取指定长度的数据用于创建一个 Int16Array 对象并返回此对象。
* @param start 开始位置。
* @param len 需要读取的字节长度。
* @return 读出的 Uint8Array 对象。
*/
getInt16Array(start: number, len: number): any;
/**
* 在指定字节偏移量位置处读取 Float32 值。
* @return Float32 值。
*/
getFloat32(): number;
getFloat64(): number;
/**
* 在当前字节偏移量位置处写入 Float32 值。
* @param value 需要写入的 Float32 值。
*/
writeFloat32(value: number): void;
writeFloat64(value: number): void;
/**
* 在当前字节偏移量位置处读取 Int32 值。
* @return Int32 值。
*/
getInt32(): number;
/**
* 在当前字节偏移量位置处读取 Uint32 值。
* @return Uint32 值。
*/
getUint32(): number;
/**
* 在当前字节偏移量位置处写入 Int32 值。
* @param value 需要写入的 Int32 值。
*/
writeInt32(value: number): void;
/**
* 在当前字节偏移量位置处写入 Uint32 值。
* @param value 需要写入的 Uint32 值。
*/
writeUint32(value: number): void;
/**
* 在当前字节偏移量位置处读取 Int16 值。
* @return Int16 值。
*/
getInt16(): number;
/**
* 在当前字节偏移量位置处读取 Uint16 值。
* @return Uint16 值。
*/
getUint16(): number;
/**
* 在当前字节偏移量位置处写入 Uint16 值。
* @param value 需要写入的Uint16 值。
*/
writeUint16(value: number): void;
/**
* 在当前字节偏移量位置处写入 Int16 值。
* @param value 需要写入的 Int16 值。
*/
writeInt16(value: number): void;
/**
* 在当前字节偏移量位置处读取 Uint8 值。
* @return Uint8 值。
*/
getUint8(): number;
/**
* 在当前字节偏移量位置处写入 Uint8 值。
* @param value 需要写入的 Uint8 值。
*/
writeUint8(value: number): void;
/**
* @private
* 在指定位置处读取 Uint8 值。
* @param pos 字节读取位置。
* @return Uint8 值。
*/
_getUInt8(pos: number): number;
/**
* @private
* 在指定位置处读取 Uint16 值。
* @param pos 字节读取位置。
* @return Uint16 值。
*/
_getUint16(pos: number): number;
/**
* @private
* 使用 getFloat32() 读取6个值,用于创建并返回一个 Matrix 对象。
* @return Matrix 对象。
*/
_getMatrix(): laya.maths.Matrix;
/**
* 字符串读取。
* @param len
* @return
*/
getCustomString(len: number): string;
/**
* 当前读取到的位置。
*/
pos: number;
/**
* 可从字节流的当前位置到末尾读取的数据的字节数。
*/
bytesAvailable: number;
/**
* 清除数据。
*/
clear(): void;
/**
* @private
* 获取此对象的 ArrayBuffer 引用。
* @return
*/
__getBuffer(): ArrayBuffer;
/**
* 写入字符串,该方法写的字符串要使用 readUTFBytes 方法读取。
* @param value 要写入的字符串。
*/
writeUTFBytes(value: string): void;
/**
* 将 UTF-8 字符串写入字节流。
* @param value 要写入的字符串值。
*/
writeUTFString(value: string): void;
/**
* @private
* 读取 UTF-8 字符串。
* @return 读出的字符串。
*/
readUTFString(): string;
/**
* 读取 UTF-8 字符串。
* @return 读出的字符串。
*/
getUTFString(): string;
/**
* @private
* 读字符串,必须是 writeUTFBytes 方法写入的字符串。
* @param len 要读的buffer长度,默认将读取缓冲区全部数据。
* @return 读取的字符串。
*/
readUTFBytes(len?: number): string;
/**
* 读字符串,必须是 writeUTFBytes 方法写入的字符串。
* @param len 要读的buffer长度,默认将读取缓冲区全部数据。
* @return 读取的字符串。
*/
getUTFBytes(len?: number): string;
/**
* 在字节流中写入一个字节。
* @param value
*/
writeByte(value: number): void;
/**
* @private
* 在字节流中读一个字节。
*/
readByte(): number;
/**
* 在字节流中读一个字节。
*/
getByte(): number;
/**
* 指定该字节流的长度。
* @param lengthToEnsure 指定的长度。
*/
ensureWrite(lengthToEnsure: number): void;
/**
* 写入指定的 Arraybuffer 对象。
* @param arraybuffer 需要写入的 Arraybuffer 对象。
* @param offset 偏移量(以字节为单位)
* @param length 长度(以字节为单位)
*/
writeArrayBuffer(arraybuffer: any, offset?: number, length?: number): void;
}
}
declare module laya.utils {
/**
* 对象缓存统一管理类
*/
class CacheManger {
/**
* 单次清理检测允许执行的时间,单位ms
*/
static loopTimeLimit: number;
private static _cacheList;
private static _index;
constructor();
/**
* 注册cache管理函数
* @param disposeFunction 释放函数 fun(force:Boolean)
* @param getCacheListFunction 获取cache列表函数fun():Array
*
*/
static regCacheByFunction(disposeFunction: Function, getCacheListFunction: Function): void;
/**
* 移除cache管理函数
* @param disposeFunction 释放函数 fun(force:Boolean)
* @param getCacheListFunction 获取cache列表函数fun():Array
*
*/
static unRegCacheByFunction(disposeFunction: Function, getCacheListFunction: Function): void;
/**
* 强制清理所有管理器
*
*/
static forceDispose(): void;
/**
* 开始检测循环
* @param waitTime 检测间隔时间
*
*/
static beginCheck(waitTime?: number): void;
/**
* 停止检测循环
*
*/
static stopCheck(): void;
}
}
declare module laya.utils {
/**
* ClassUtils
是一个类工具类。
*/
class ClassUtils {
private static _temParam;
static _classMap: any;
/**
* 注册 Class 映射。
* @param className 映射的名字,或者类名简写。
* @param classDef 类的全名或者类的引用,全名比如:"laya.display.Sprite"。
*/
static regClass(className: string, classDef: any): void;
/**
* 返回注册 Class 映射。
* @param className 映射的名字。
*/
static getRegClass(className: string): any;
/**
* 根据名字返回类对象。
* @param className 类名。
* @return
*/
static getClass: Function;
/**
* 根据名称创建 Class 实例。
* @param className 类名。
* @return 返回类的实例。
*/
static getInstance(className: string): any;
/**
* 根据指定的 json 数据创建节点对象。
* 比如:
*
* "type":"Sprite",
* "props":
* "x":100,
* "y":50,
* "name":"item1",
* "scale":[2,2]
* },
* "customProps":
* "x":100,
* "y":50,
* "name":"item1",
* "scale":[2,2]
* },
* "child":[
*
* "type":"Text",
* "props":
* "text":"this is a test",
* "var":"label",
* "rumtime":""
* }
* }
* ]
* }
* @param json json字符串或者Object对象。
* @param node node节点,如果为空,则新创建一个。
* @param root 根节点,用来设置var定义。
* @return 生成的节点。
*/
static createByJson(json: any, node?: any, root?: laya.display.Node, customHandler?: Handler, instanceHandler?: Handler): any;
/**
* 将graphic对象添加到Sprite上
* @param graphicO graphic对象描述
* @param sprite
*
*/
static addGraphicsToSprite(graphicO: any, sprite: laya.display.Sprite): void;
/**
* 将graphic绘图指令添加到sprite上
* @param graphicO 绘图指令描述
* @param sprite
*
*/
static addGraphicToSprite(graphicO: any, sprite: laya.display.Sprite, isChild?: boolean): void;
/**
* @private
*/
static isDrawType(type: string): boolean;
private static _tM;
/**
* @private
*/
static _getPointListByStr(str: string): ArrayColor
是一个颜色值处理类。
*/
class Color {
static _SAVE: any;
static _SAVE_SIZE: number;
private static _COLOR_MAP;
private static _DEFAULT;
private static _COLODID;
_color: ArrayColor
类的实例。
* @param str 颜色值。
*/
constructor(str: any);
static _initDefault(): any;
static _initSaveMap(): void;
/**
* 根据指定的属性值,创建并返回一个 Color
类的实例。
* @param str 颜色值。
* @return 一个 Color
类的实例。
*/
static create(str: any): Color;
}
}
declare module laya.utils {
/**
* Dictionary
是一个字典型的数据存取类。
*/
class Dictionary {
/**
* 获取所有的子元素列表。
*/
values: ArrayDragging
类是触摸滑动控件。
*/
class Dragging {
/** 被拖动的对象。*/
target: laya.display.Sprite;
/** 缓动衰减系数。*/
ratio: number;
/** 单帧最大偏移量。*/
maxOffset: number;
/** 滑动范围。*/
area: laya.maths.Rectangle;
/** 表示拖动是否有惯性。*/
hasInertia: boolean;
/** 橡皮筋最大值。*/
elasticDistance: number;
/** 橡皮筋回弹时间,单位为毫秒。*/
elasticBackTime: number;
/** 事件携带数据。*/
data: any;
/**
* 开始拖拽。
* @param target 待拖拽的 Sprite
对象。
* @param area 滑动范围。
* @param hasInertia 拖动是否有惯性。
* @param elasticDistance 橡皮筋最大值。
* @param elasticBackTime 橡皮筋回弹时间,单位为毫秒。
* @param data 事件携带数据。
* @param disableMouseEvent 鼠标事件是否有效。
*/
start(target: laya.display.Sprite, area: laya.maths.Rectangle, hasInertia: boolean, elasticDistance: number, elasticBackTime: number, data: any, disableMouseEvent: boolean): void;
/**
* 停止拖拽。
*/
stop(): void;
}
}
declare module laya.utils {
/**
* Ease
类定义了缓动函数,以便实现 Tween
动画的缓动效果。
*/
class Ease {
/**
* 定义无加速持续运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static linearNone(t: number, b: number, c: number, d: number): number;
/**
* 定义无加速持续运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static linearIn(t: number, b: number, c: number, d: number): number;
/**
* 定义无加速持续运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static linearInOut(t: number, b: number, c: number, d: number): number;
/**
* 定义无加速持续运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static linearOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static bounceIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static bounceInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* 它的运动是类似一个球落向地板又弹起后,几次逐渐减小的回弹运动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static bounceOut(t: number, b: number, c: number, d: number): number;
/**
* 开始时往后运动,然后反向朝目标移动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param s 指定过冲量,此处数值越大,过冲越大。
* @return 指定时间的插补属性的值。
*/
static backIn(t: number, b: number, c: number, d: number, s?: number): number;
/**
* 开始运动时是向后跟踪,再倒转方向并朝目标移动,稍微过冲目标,然后再次倒转方向,回来朝目标移动。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param s 指定过冲量,此处数值越大,过冲越大。
* @return 指定时间的插补属性的值。
*/
static backInOut(t: number, b: number, c: number, d: number, s?: number): number;
/**
* 开始运动时是朝目标移动,稍微过冲,再倒转方向回来朝着目标。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param s 指定过冲量,此处数值越大,过冲越大。
* @return 指定时间的插补属性的值。
*/
static backOut(t: number, b: number, c: number, d: number, s?: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* 其中的运动由按照指数方式衰减的正弦波来定义。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param a 指定正弦波的幅度。
* @param p 指定正弦波的周期。
* @return 指定时间的插补属性的值。
*/
static elasticIn(t: number, b: number, c: number, d: number, a?: number, p?: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* 其中的运动由按照指数方式衰减的正弦波来定义。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param a 指定正弦波的幅度。
* @param p 指定正弦波的周期。
* @return 指定时间的插补属性的值。
*/
static elasticInOut(t: number, b: number, c: number, d: number, a?: number, p?: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* 其中的运动由按照指数方式衰减的正弦波来定义。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @param a 指定正弦波的幅度。
* @param p 指定正弦波的周期。
* @return 指定时间的插补属性的值。
*/
static elasticOut(t: number, b: number, c: number, d: number, a?: number, p?: number): number;
/**
* 以零速率开始运动,然后在执行时加快运动速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static strongIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static strongInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static strongOut(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static sineInOut(t: number, b: number, c: number, d: number): number;
/**
* 以零速率开始运动,然后在执行时加快运动速度。
* Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static sineIn(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* Sine 缓动方程中的运动加速度小于 Quad 方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static sineOut(t: number, b: number, c: number, d: number): number;
/**
* 以零速率开始运动,然后在执行时加快运动速度。
* Quint 缓动方程的运动加速大于 Quart 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quintIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* Quint 缓动方程的运动加速大于 Quart 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quintInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* Quint 缓动方程的运动加速大于 Quart 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quintOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* Quart 缓动方程的运动加速大于 Cubic 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quartIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* Quart 缓动方程的运动加速大于 Cubic 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quartInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* Quart 缓动方程的运动加速大于 Cubic 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quartOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* Cubic 缓动方程的运动加速大于 Quad 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static cubicIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* Cubic 缓动方程的运动加速大于 Quad 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static cubicInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* Cubic 缓动方程的运动加速大于 Quad 缓动方程。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static cubicOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quadIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quadInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* Quad 缓动方程中的运动加速度等于 100% 缓动的时间轴补间的运动加速度,并且显著小于 Cubic 缓动方程中的运动加速度。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static quadOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* 其中每个时间间隔是剩余距离减去一个固定比例部分。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static expoIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* 其中每个时间间隔是剩余距离减去一个固定比例部分。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static expoInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* 其中每个时间间隔是剩余距离减去一个固定比例部分。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static expoOut(t: number, b: number, c: number, d: number): number;
/**
* 方法以零速率开始运动,然后在执行时加快运动速度。
* 缓动方程的运动加速会产生突然的速率变化。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static circIn(t: number, b: number, c: number, d: number): number;
/**
* 开始运动时速率为零,先对运动进行加速,再减速直到速率为零。
* 缓动方程的运动加速会产生突然的速率变化。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static circInOut(t: number, b: number, c: number, d: number): number;
/**
* 以较快速度开始运动,然后在执行时减慢运动速度,直至速率为零。
* 缓动方程的运动加速会产生突然的速率变化。
* @param t 指定当前时间,介于 0 和持续时间之间(包括二者)。
* @param b 指定动画属性的初始值。
* @param c 指定动画属性的更改总计。
* @param d 指定运动的持续时间。
* @return 指定时间的插补属性的值。
*/
static circOut(t: number, b: number, c: number, d: number): number;
}
}
declare module laya.utils {
/**
* Handler
是事件处理器类。
推荐使用 Handler.create() 方法从对象池创建,减少对象创建消耗。
*注意:由于鼠标事件也用本对象池,不正确的回收及调用,可能会影响鼠标事件的执行。
*/ class Handler { private static _pool; private static _gid; /** 执行域(this)。*/ caller: any; /** 处理方法。*/ method: Function; /** 参数。*/ args: ArrayHandler
类的实例。
* @param caller 执行域。
* @param method 处理函数。
* @param args 函数参数。
* @param once 是否只执行一次。
*/
constructor(caller?: any, method?: Function, args?: ArrayHTMLChar
是一个 HTML 字符类。
*/
class HTMLChar implements laya.display.ILayout {
private static _isWordRegExp;
/** 表示是否是正常单词(英文|.|数字)。*/
isWord: boolean;
/** 字符。*/
char: string;
/** 字符数量。*/
charNum: number;
/** CSS 样式。*/
style: laya.display.css.CSSStyle;
/**
* 根据指定的字符、宽高、样式,创建一个 HTMLChar
类的实例。
* @param char 字符。
* @param w 宽度。
* @param h 高度。
* @param style CSS 样式。
*/
constructor(char: string, w: number, h: number, style: laya.display.css.CSSStyle);
/**
* 设置与此对象绑定的显示对象 Sprite
。
* @param sprite 显示对象 Sprite
。
*/
setSprite(sprite: laya.display.Sprite): void;
/**
* 获取与此对象绑定的显示对象 Sprite
。
* @return
*/
getSprite(): laya.display.Sprite;
/**
* 此对象存储的 X 轴坐标值。
* 当设置此值时,如果此对象有绑定的 Sprite 对象,则改变 Sprite 对象的属性 x 的值。
*/
x: number;
/**
* 此对象存储的 Y 轴坐标值。
* 当设置此值时,如果此对象有绑定的 Sprite 对象,则改变 Sprite 对象的属性 y 的值。
*/
y: number;
/**
* 宽度。
*/
width: number;
/**
* 高度。
*/
height: number;
_isChar(): boolean;
_getCSSStyle(): laya.display.css.CSSStyle;
}
}
declare module laya.utils {
/**
* Log
类用于在界面内显示日志记录信息。
*/
class Log {
private static _logdiv;
private static _count;
/**最大打印数量,超过这个数量,则自动清理一次*/
static maxCount: number;
/**
* 激活Log系统,使用方法Laya.init(800,600,Laya.Log);
*/
static enable(): void;
/**隐藏/显示日志面板*/
static toggle(): void;
/**
* 增加日志内容。
* @param value 需要增加的日志内容。
*/
static print(value: string): void;
/**
* 清理日志
*/
static clear(): void;
}
}
declare module laya.utils {
/**
* Mouse
类用于控制鼠标光标。
*/
class Mouse {
private static _style;
private static _preCursor;
constructor();
/**
* 设置鼠标样式
* @param cursorStr
* 例如auto move no-drop col-resize
* all-scroll pointer not-allowed row-resize
* crosshair progress e-resize ne-resize
* default text n-resize nw-resize
* help vertical-text s-resize se-resize
* inherit wait w-resize sw-resize
*
*/
static cursor: string;
/**
* 隐藏鼠标
*
*/
static hide(): void;
/**
* 显示鼠标
*
*/
static show(): void;
}
}
declare module laya.utils {
/**
* Pool
是对象池类,用于对象的存贮、重复使用。
*/
class Pool {
private static _poolDic;
/**
* 根据对象类型标识字符,获取对象池。
* @param sign 对象类型标识字符。
* @return 对象池。
*/
static getPoolBySign(sign: string): ArrayStat
用于显示帧率统计信息。
*/
class Stat {
/**主舞台 Stage
渲染次数计数。 */
static loopCount: number;
/** 着色器请求次数。*/
static shaderCall: number;
/** 描绘次数。*/
static drawCall: number;
/** 三角形面数。*/
static trianglesFaces: number;
/** 精灵Sprite
的数量。*/
static spriteCount: number;
/** 每秒帧数。*/
static FPS: number;
/** 画布 canvas 使用标准渲染的次数。*/
static canvasNormal: number;
/** 画布 canvas 使用位图渲染的次数。*/
static canvasBitmap: number;
/** 画布 canvas 缓冲区重绘次数。*/
static canvasReCache: number;
/** 表示当前使用的是否为慢渲染模式。*/
static renderSlow: boolean;
/** 资源管理器所管理资源的累计内存,以字节为单位。*/
static currentMemorySize: number;
private static _fpsStr;
private static _canvasStr;
private static _canvas;
private static _ctx;
private static _timer;
private static _count;
private static _width;
private static _height;
private static _view;
private static _fontSize;
private static _first;
private static _vx;
/**
* 显示帧频信息。
* @param x X轴显示位置。
* @param y Y轴显示位置。
*/
static show(x?: number, y?: number): void;
/**激活帧率统计*/
static enable(): void;
/**
* 隐藏帧频信息。
*/
static hide(): void;
/**
* @private
* 清除帧频计算相关的数据。
*/
static clear(): void;
/**
* 点击帧频显示区域的处理函数。
*/
static onclick: Function;
/**
* @private
* 帧频计算循环处理函数。
*/
static loop(): void;
}
}
declare module laya.utils {
/**
* StringKey
类用于存取字符串对应的数字。
*/
class StringKey {
/**
* 添加一个字符。
* @param str 字符,将作为key 存储相应生成的数字。
* @return 此字符对应的数字。
*/
add(str: string): number;
/**
* 获取指定字符对应的数字。
* @param str key 字符。
* @return 此字符对应的数字。
*/
get(str: string): number;
}
}
declare module laya.utils {
/**
* TimeLine
是一个用来创建时间轴动画的类。
*/
class TimeLine extends laya.events.EventDispatcher {
/** 缩放动画播放的速度。*/
scale: number;
/**
* 控制一个对象,从当前点移动到目标点。
* @param target 要控制的对象。
* @param props 要控制对象的属性。
* @param duration 对象TWEEN的时间。
* @param ease 缓动类型
* @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
*/
static to(target: any, props: any, duration: number, ease?: Function, offset?: number): TimeLine;
/**
* 从 props 属性,缓动到当前状态。
* @param target target 目标对象(即将更改属性值的对象)
* @param props 要控制对象的属性
* @param duration 对象TWEEN的时间
* @param ease 缓动类型
* @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
*/
static from(target: any, props: any, duration: number, ease?: Function, offset?: number): TimeLine;
/**
* 控制一个对象,从当前点移动到目标点。
* @param target 要控制的对象。
* @param props 要控制对象的属性。
* @param duration 对象TWEEN的时间。
* @param ease 缓动类型
* @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)。
*/
to(target: any, props: any, duration: number, ease?: Function, offset?: number): TimeLine;
/**
* 从 props 属性,缓动到当前状态。
* @param target target 目标对象(即将更改属性值的对象)
* @param props 要控制对象的属性
* @param duration 对象TWEEN的时间
* @param ease 缓动类型
* @param offset 相对于上一个对象,偏移多长时间(单位:毫秒)
*/
from(target: any, props: any, duration: number, ease?: Function, offset?: number): TimeLine;
/**
* 在时间队列中加入一个标签。
* @param label 标签名称。
* @param offset 标签相对于上个动画的偏移时间(单位:毫秒)。
*/
addLabel(label: string, offset: number): TimeLine;
/**
* 移除指定的标签
* @param label
*/
removeLabel(label: string): void;
/**
* 动画从整个动画的某一时间开始。
* @param time(单位:毫秒)。
*/
gotoTime(time: number): void;
/**
* 从指定的标签开始播。
* @param Label 标签名。
*/
gotoLabel(Label: string): void;
/**
* 暂停整个动画。
*/
pause(): void;
/**
* 恢复暂停动画的播放。
*/
resume(): void;
/**
* 播放动画。
* @param timeOrLabel 开启播放的时间点或标签名。
* @param loop 是否循环播放。
*/
play(timeOrLabel?: any, loop?: boolean): void;
/**
* @private
* 得到帧索引
*/
/**
* @private
* 设置帧索引
*/
index: number;
/**
* 得到总帧数据
*/
total: number;
/**
* 重置所有对象,复用对象的时候使用。
*/
reset(): void;
/**
* 彻底销毁此对象。
*/
destroy(): void;
}
class tweenData {
type: number;
isTo: boolean;
startTime: number;
endTime: number;
target: any;
duration: number;
ease: Function;
data: any;
}
}
declare module laya.utils {
/**
* Timer
是时钟管理类。它是一个单例,可以通过 Laya.timer 访问。
*/
class Timer {
private static _pool;
/** 时针缩放。*/
scale: number;
/** 当前时间。*/
currTimer: number;
/** 当前的帧数。*/
currFrame: number;
/**
*两帧之间的时间间隔,单位毫秒。
*/
delta: number;
/**
* 创建 Timer
类的一个实例。
*/
constructor();
/**
* @private
* 帧循环处理函数。
*/
_update(): void;
_create(useFrame: boolean, repeat: boolean, delay: number, caller: any, method: Function, args: ArrayTween
是一个缓动类。使用实现目标对象属性的渐变。
*/
class Tween {
gid: number;
/**更新回调,缓动数值发生变化时,回调变化的值*/
update: Handler;
/**
* 缓动对象的props属性到目标值。
* @param target 目标对象(即将更改属性值的对象)。
* @param props 变化的属性列表,比如
* @param duration 花费的时间,单位毫秒。
* @param ease 缓动类型,默认为匀速运动。
* @param complete 结束回调函数。
* @param delay 延迟执行时间。
* @param coverBefore 是否覆盖之前的缓动。
* @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
* @return 返回Tween对象。
*/
static to(target: any, props: any, duration: number, ease?: Function, complete?: Handler, delay?: number, coverBefore?: boolean, autoRecover?: boolean): Tween;
/**
* 从props属性,缓动到当前状态。
* @param target 目标对象(即将更改属性值的对象)。
* @param props 变化的属性列表,比如
* @param duration 花费的时间,单位毫秒。
* @param ease 缓动类型,默认为匀速运动。
* @param complete 结束回调函数。
* @param delay 延迟执行时间。
* @param coverBefore 是否覆盖之前的缓动。
* @param autoRecover 是否自动回收,默认为true,缓动结束之后自动回收到对象池。
* @return 返回Tween对象。
*/
static from(target: any, props: any, duration: number, ease?: Function, complete?: Handler, delay?: number, coverBefore?: boolean, autoRecover?: boolean): Tween;
/**
* 缓动对象的props属性到目标值。
* @param target 目标对象(即将更改属性值的对象)。
* @param props 变化的属性列表,比如
* @param duration 花费的时间,单位毫秒。
* @param ease 缓动类型,默认为匀速运动。
* @param complete 结束回调函数。
* @param delay 延迟执行时间。
* @param coverBefore 是否覆盖之前的缓动。
* @return 返回Tween对象。
*/
to(target: any, props: any, duration: number, ease?: Function, complete?: Handler, delay?: number, coverBefore?: boolean): Tween;
/**
* 从props属性,缓动到当前状态。
* @param target 目标对象(即将更改属性值的对象)。
* @param props 变化的属性列表,比如
* @param duration 花费的时间,单位毫秒。
* @param ease 缓动类型,默认为匀速运动。
* @param complete 结束回调函数。
* @param delay 延迟执行时间。
* @param coverBefore 是否覆盖之前的缓动。
* @return 返回Tween对象。
*/
from(target: any, props: any, duration: number, ease?: Function, complete?: Handler, delay?: number, coverBefore?: boolean): Tween;
_create(target: any, props: any, duration: number, ease: Function, complete: Handler, delay: number, coverBefore: boolean, isTo: boolean, usePool: boolean, runNow: boolean): Tween;
_updateEase(time: number): void;
/**设置当前执行比例**/
progress: number;
/**
* 立即结束缓动并到终点。
*/
complete(): void;
/**
* 暂停缓动,可以通过resume或restart重新开始。
*/
pause(): void;
/**
* 设置开始时间。
* @param startTime 开始时间。
*/
setStartTime(startTime: number): void;
/**
* 清理指定目标对象上的所有缓动。
* @param target 目标对象。
*/
static clearAll(target: any): void;
/**
* 清理某个缓动。
* @param tween 缓动对象。
*/
static clear(tween: Tween): void;
static clearTween(target: any): void;
/**
* 停止并清理当前缓动。
*/
clear(): void;
/**
* @private
*/
_clear(): void;
/** 回收到对象池。*/
recover(): void;
/**
* 重新开始暂停的缓动。
*/
restart(): void;
/**
* 恢复暂停的缓动。
*/
resume(): void;
}
}
declare module laya.utils {
/**
* Utils
是工具类。
*/
class Utils {
private static _gid;
private static _pi;
private static _pi2;
/**
* 角度转弧度。
* @param angle 角度值。
* @return 返回弧度值。
*/
static toRadian(angle: number): number;
/**
* 弧度转换为角度。
* @param radian 弧度值。
* @return 返回角度值。
*/
static toAngle(radian: number): number;
/**
* 将传入的 uint 类型颜色值转换为字符串型颜色值。
* @param color 颜色值。
* @return 字符串型颜色值。
*/
static toHexColor(color: number): string;
/**获取一个全局唯一ID。*/
static getGID(): number;
/**
* 将字符串解析成 XML 对象。
* @param value 需要解析的字符串。
* @return js原生的XML对象。
*/
static parseXMLFromString: Function;
/**
* @private
* 连接数组。和array的concat相比,此方法不创建新对象
* 注意:若 参数 a 不为空,则会改变参数 source 的值为连接后的数组。 * @param source 待连接的数组目标对象。 * @param array 待连接的数组对象。 * @return 连接后的数组。 */ static concatArray(source: ArraySprite
和此显示对象上的 两个点,返回此对象上的两个点在舞台坐标系上组成的最小的矩形区域对象。
* @param sprite 显示对象 Sprite
。
* @param x0 点一的 X 轴坐标点。
* @param y0 点一的 Y 轴坐标点。
* @param x1 点二的 X 轴坐标点。
* @param y1 点二的 Y 轴坐标点。
* @return 两个点在舞台坐标系组成的矩形对象 Rectangle
。
*/
static getGlobalRecByPoints(sprite: laya.display.Sprite, x0: number, y0: number, x1: number, y1: number): laya.maths.Rectangle;
/**
* 计算传入的显示对象 Sprite
的全局坐标系的坐标和缩放值,返回 Rectangle
对象存放计算出的坐标X值、Y值、ScaleX值、ScaleY值。
* @param sprite Sprite
对象。
* @return 矩形对象 Rectangle
*/
static getGlobalPosAndScale(sprite: laya.display.Sprite): laya.maths.Rectangle;
/**
* 给传入的函数绑定作用域,返回绑定后的函数。
* @param fun 函数对象。
* @param scope 函数作用域。
* @return 绑定后的函数。
*/
static bind(fun: Function, scope: any): Function;
/**
* 测量文本在指定样式下的宽度、高度信息。
* @param txt 文本内容。
* @param font 文本字体样式。
* @return 文本的宽高信息对象。如:
*/
static measureText(txt: string, font: string): any;
/**
* @private
* 对传入的数组列表,根据子项的属性 Z 值进行重新排序。返回是否已重新排序的 Boolean 值。
* @param array 子对象数组。
* @return Boolean 值,表示是否已重新排序。
*/
static updateOrder(array: Array