UNPKG

layaair-js

Version:

An open source HTML5 engine. Edition JavaScript.

1,814 lines 859 kB
declare module laya.ani { /** * <code>AnimationPlayer</code> 类用于动画播放器。 */ class AnimationPlayer extends laya.events.EventDispatcher { _fullFrames: Array<any>; /**是否缓存*/ isCache: boolean; /** 播放速率*/ playbackRate: number; /** 停止时是否归零*/ returnToZeroStopped: boolean; /** * 获取动画数据模板 * @param value 动画数据模板 */ /** * 设置动画数据模板,注意:修改此值会有计算开销。 * @param value 动画数据模板 */ templet: KeyframesAniTemplet; /** * 动画播放的起始时间位置。 * @return 起始时间位置。 */ playStart: number; /** * 动画播放的结束时间位置。 * @return 结束时间位置。 */ playEnd: number; /** * 获取动画播放一次的总时间 * @return 动画播放一次的总时间 */ playDuration: number; /** * 获取动画播放的总总时间 * @return 动画播放的总时间 */ overallDuration: number; /** * 获取当前动画索引 * @return value 当前动画索引 */ currentAnimationClipIndex: number; /** * 获取当前帧数 * @return 当前帧数 */ currentKeyframeIndex: number; /** * 获取当前精确时间,不包括重播时间 * @return value 当前时间 */ currentPlayTime: number; /** * 获取当前帧时间,不包括重播时间 * @return value 当前时间 */ currentFrameTime: number; /** * 获取缓存播放速率。* * @return 缓存播放速率。 */ /** * 设置缓存播放速率,默认值为1.0,注意:修改此值会有计算开销。* * @return value 缓存播放速率。 */ cachePlayRate: number; /** * 获取默认帧率* * @return value 默认帧率 */ /** * 设置默认帧率,每秒60帧,注意:修改此值会有计算开销。* * @return value 缓存帧率 */ cacheFrameRate: number; /** * 设置当前播放位置 * @param value 当前时间 */ currentTime: number; /** * 获取当前是否暂停 * @return 是否暂停 */ /** * 设置是否暂停 * @param value 是否暂停 */ paused: boolean; /** * 获取缓存帧率间隔时间 * @return 缓存帧率间隔时间 */ cacheFrameRateInterval: number; /** * 获取当前播放状态 * @return 当前播放状态 */ state: number; constructor(); /** * @private */ _onTempletLoadedComputeFullKeyframeIndices(cachePlayRate: number, cacheFrameRate: number, templet: KeyframesAniTemplet): void; /** * 播放动画。 * @param index 动画索引。 * @param playbackRate 播放速率。 * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。 * @param playStart 播放的起始时间位置。 * @param playEnd 播放的结束时间位置。(0为动画一次循环的最长结束时间位置)。 */ play(index?: number, playbackRate?: number, overallDuration?: number, playStart?: number, playEnd?: number): void; /** * 播放动画。 * @param index 动画索引。 * @param playbackRate 播放速率。 * @param duration 播放时长(0为1次,Number.MAX_VALUE为循环播放)。 * @param playStartFrame 播放的原始起始帧率位置。 * @param playEndFrame 播放的原始结束帧率位置。(0为动画一次循环的最长结束时间位置)。 */ playByFrame(index?: number, playbackRate?: number, overallDuration?: number, playStartFrame?: number, playEndFrame?: number, fpsIn3DBuilder?: number): void; /** * 停止播放当前动画 * @param immediate 是否立即停止 */ stop(immediate?: boolean): void; /**更新动画播放器 */ update(elapsedTime: number): void; } } declare module laya.ani { /** * @private */ class AnimationState { static stopped: number; static paused: number; static playing: number; constructor(); } } declare module laya.ani.bone { /** * @private */ class Bone { name: string; root: Bone; parentBone: Bone; length: number; transform: Transform; resultTransform: Transform; resultMatrix: laya.maths.Matrix; inheritScale: boolean; inheritRotation: boolean; rotation: number; resultRotation: number; constructor(); setTempMatrix(matrix: laya.maths.Matrix): void; update(pMatrix?: laya.maths.Matrix): void; updateChild(): void; updateDraw(x: number, y: number): void; addChild(bone: Bone): void; findBone(boneName: string): Bone; localToWorld(local: Array<any>): void; } } declare module laya.ani.bone { /** * @private */ class BoneSlot { /** 插槽名称 */ name: string; /** 插槽绑定的骨骼名称 */ parent: string; /** 插糟显示数据数据的名称 */ attachmentName: string; /** 原始数据的索引 */ srcDisplayIndex: number; /** 判断对象是否是原对象 */ type: string; /** 模板的指针 */ templet: Templet; /** 当前插槽对应的数据 */ currSlotData: SlotData; /** 当前插槽显示的纹理 */ currTexture: laya.resource.Texture; /** 显示对象对应的数据 */ currDisplayData: SkinSlotDisplayData; /** 显示皮肤的索引 */ displayIndex: number; deformData: Array<any>; /** * 设置要显示的插槽数据 * @param slotData * @param disIndex */ showSlotData(slotData: SlotData): void; /** * 通过名字显示指定对象 * @param name */ showDisplayByName(name: string): void; /** * 指定显示对象 * @param index */ showDisplayByIndex(index: number): void; /** * 替换皮肤 * @param _texture */ replaceSkin(_texture: laya.resource.Texture): void; /** * 保存父矩阵的索引 * @param parentMatrix */ setParentMatrix(parentMatrix: laya.maths.Matrix): void; /** * 把纹理画到Graphics上 * @param graphics * @param noUseSave */ draw(graphics: laya.ani.GraphicsAni, boneMatrixArray: Array<any>, noUseSave?: boolean, alpha?: number): void; /** * 画骨骼的起始点,方便调试 * @param graphics */ drawBonePoint(graphics: laya.display.Graphics): void; /** * 得到插糟的矩阵 * @return */ getMatrix(): laya.maths.Matrix; /** * 用原始数据拷贝出一个 * @return */ copy(): BoneSlot; } } declare module laya.ani.bone { /** * @private */ class DeformAniData { deformSlotDataList: Array<any>; constructor(); } } declare module laya.ani.bone { /** * ... * @author */ class DeformSlotData { deformSlotDisplayList: Array<any>; constructor(); } } declare module laya.ani.bone { /** * @private */ class DeformSlotDisplayData { boneSlot: BoneSlot; slotIndex: number; attachment: string; timeList: Array<any>; vectices: Array<any>; deformData: Array<any>; frameIndex: number; constructor(); apply(time: number, boneSlot: BoneSlot, alpha?: number): void; } } declare module laya.ani.bone { /** * ... * @author */ class DrawOrderData { time: number; drawOrder: Array<any>; constructor(); } } declare module laya.ani.bone { class EventData { name: string; intValue: number; floatValue: number; stringValue: string; time: number; constructor(); } } declare module laya.ani.bone { /** * @private */ class IkConstraint { name: string; mix: number; bendDirection: number; static radDeg: number; static degRad: number; constructor(data: IkConstraintData, bones: Array<any>); apply(): void; } } declare module laya.ani.bone { /** * @private */ class IkConstraintData { name: string; targetBoneName: string; boneNames: Array<any>; bendDirection: number; mix: number; targetBoneIndex: number; boneIndexs: Array<any>; constructor(); } } declare module laya.ani.bone { /** * @private * 路径作用器 * 1,生成根据骨骼计算控制点 * 2,根据控制点生成路径,并计算路径上的节点 * 3,根据节点,重新调整骨骼位置 */ class PathConstraint { target: BoneSlot; data: PathConstraintData; bones: Array<any>; position: number; spacing: number; rotateMix: number; translateMix: number; constructor(data: PathConstraintData, bones: Array<any>); /** * 计算骨骼在路径上的节点 * @param boneSlot * @param boneMatrixArray * @param graphics */ apply(boneList: Array<any>, graphics: laya.display.Graphics): void; /** * 计算顶点的世界坐标 * @param boneSlot * @param boneList * @param start * @param count * @param worldVertices * @param offset */ computeWorldVertices2(boneSlot: BoneSlot, boneList: Array<any>, start: number, count: number, worldVertices: Array<any>, offset: number): void; } } declare module laya.ani.bone { /** * @private */ class PathConstraintData { name: string; bones: Array<any>; target: string; positionMode: string; spacingMode: string; rotateMode: string; offsetRotation: number; position: number; spacing: number; rotateMix: number; translateMix: number; constructor(); } } declare module laya.ani.bone { /** * 骨骼动画由Templet,AnimationPlayer,Skeleton三部分组成 */ class Skeleton extends laya.display.Sprite { /** * 创建一个Skeleton对象 * 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装) * 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装) * 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用) * @param templet 骨骼动画模板 * @param aniMode 动画模式,0:不支持换装,1,2支持换装 */ constructor(templet?: laya.ani.bone.Templet, aniMode?: number); /** * 初始化动画 * 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装) * 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装) * 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用) * @param templet 模板 * @param aniMode 动画模式,0:不支持换装,1,2支持换装 */ init(templet: laya.ani.bone.Templet, aniMode?: number): void; /** * 得到资源的URL */ /** * 设置动画路径 */ url: string; /** * 通过加载直接创建动画 * @param path 要加载的动画文件路径 * @param complete 加载完成的回调函数 * @param aniMode 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改(内存开销小,计算开销小,不支持换装) 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装)2,使用动态方式,去实时去画(内存开销小,计算开销大,支持换装,不建议使用) */ load(path: string, complete?: laya.utils.Handler, aniMode?: number): void; /** * 得到当前动画的数量 * @return */ getAnimNum(): number; /** * 得到指定动画的名字 * @param index 动画的索引 */ getAniNameByIndex(index: number): string; /** * 通过名字得到插槽的引用 * @param name 动画的名字 * @return */ getSlotByName(name: string): laya.ani.bone.BoneSlot; /** * 通过名字显示一套皮肤 * @param name 皮肤的名字 */ showSkinByName(name: string): void; /** * 通过索引显示一套皮肤 * @param skinIndex 皮肤索引 */ showSkinByIndex(skinIndex: number): void; /** * 设置某插槽的皮肤 * @param slotName 插槽名称 * @param index 插糟皮肤的索引 */ showSlotSkinByIndex(slotName: string, index: number): void; /** * 设置自定义皮肤 * @param name 插糟的名字 * @param texture 自定义的纹理 */ setSlotSkin(slotName: string, texture: laya.resource.Texture): void; /** * 播放动画 * @param nameOrIndex 动画名字或者索引 * @param loop 是否循环播放 * @param force false,如果要播的动画跟上一个相同就不生效,true,强制生效 * @param start 起始时间 * @param end 结束时间 */ play(nameOrIndex: any, loop: boolean, force?: boolean, start?: number, end?: number): void; /** * 停止动画 */ stop(): void; /** * 设置动画播放速率 * @param value 1为标准速率 */ playbackRate(value: number): void; /** * 暂停动画的播放 */ paused(): void; /** * 恢复动画的播放 */ resume(): void; /** * 销毁当前动画 */ destroy(destroyChild?: boolean): void; /** * @private * 得到帧索引 */ /** * @private * 设置帧索引 */ index: number; /** * 得到总帧数据 */ total: number; /** * 得到播放器的引用 */ player: laya.ani.AnimationPlayer; } } declare module laya.ani.bone { /** * @private */ class SkinData { name: string; slotArr: Array<any>; } } declare module laya.ani.bone { /** * @private */ class SkinSlotDisplayData { name: string; attachmentName: string; type: number; transform: Transform; width: number; height: number; texture: laya.resource.Texture; bones: Array<any>; uvs: Array<any>; weights: Array<any>; triangles: Array<any>; vertices: Array<any>; lengths: Array<any>; verLen: number; createTexture(currTexture: laya.resource.Texture): laya.resource.Texture; destory(): void; } } declare module laya.ani.bone { /** * @private */ class SlotData { name: string; displayArr: Array<any>; getDisplayByName(name: string): number; } } declare module laya.ani.bone { /** * 动画模板类 */ class Templet extends laya.ani.KeyframesAniTemplet { static TEMPLET_DICTIONARY: any; /** 存放原始骨骼信息 */ srcBoneMatrixArr: Array<any>; /** IK数据 */ ikArr: Array<any>; /** transform数据 */ tfArr: Array<any>; /** path数据 */ pathArr: Array<any>; /** 存放插槽数据的字典 */ boneSlotDic: any; /** 绑定插槽数据的字典 */ bindBoneBoneSlotDic: any; /** 存放插糟数据的数组 */ boneSlotArray: Array<any>; /** 皮肤数据 */ skinDataArray: Array<any>; /** 皮肤的字典数据 */ skinDic: any; /** 存放纹理数据 */ subTextureDic: any; /** 是否解析失败 */ isParseFail: boolean; /** 数据对应的URL,用来释放资源用 */ url: string; /** 反转矩阵,有些骨骼动画要反转才能显示 */ yReverseMatrix: laya.maths.Matrix; /** 渲染顺序动画数据 */ drawOrderAniArr: Array<any>; /** 事件动画数据 */ eventAniArr: Array<any>; attachmentNames: Array<any>; /** 顶点动画数据 */ deformAniArr: Array<any>; /** 实际显示对象列表,用于销毁用 */ skinSlotDisplayDataArr: Array<any>; aniSectionDic: any; mRootBone: Bone; mBoneArr: Array<any>; loadAni(url: string): void; /** * 解析骨骼动画数据 * @param texture 骨骼动画用到的纹理 * @param skeletonData 骨骼动画信息及纹理分块信息 * @param playbackRate 缓冲的帧率数据(会根据帧率去分帧) */ parseData(texture: laya.resource.Texture, skeletonData: ArrayBuffer, playbackRate?: number): void; /** * 创建动画 * 0,使用模板缓冲的数据,模板缓冲的数据,不允许修改 (内存开销小,计算开销小,不支持换装) * 1,使用动画自己的缓冲区,每个动画都会有自己的缓冲区,相当耗费内存 (内存开销大,计算开销小,支持换装) * 2,使用动态方式,去实时去画 (内存开销小,计算开销大,支持换装,不建议使用) * @param aniMode 0 动画模式,0:不支持换装,1,2支持换装 * @return */ buildArmature(aniMode?: number): Skeleton; /** * @private * 解析动画 * @param data 解析的二进制数据 * @param playbackRate 帧率 */ parse(data: ArrayBuffer): void; /** * 得到指定的纹理 * @param name 纹理的名字 * @return */ getTexture(name: string): laya.resource.Texture; /** * @private * 显示指定的皮肤 * @param boneSlotDic 插糟字典的引用 * @param skinIndex 皮肤的索引 */ showSkinByIndex(boneSlotDic: any, skinIndex: number): boolean; /** * 通过皮肤名字得到皮肤索引 * @param skinName 皮肤名称 * @return */ getSkinIndexByName(skinName: string): number; /** * @private * 得到缓冲数据 * @param aniIndex 动画索引 * @param frameIndex 帧索引 * @return */ getGrahicsDataWithCache(aniIndex: number, frameIndex: number): laya.display.Graphics; /** * @private * 保存缓冲grahpics * @param aniIndex 动画索引 * @param frameIndex 帧索引 * @param graphics 要保存的数据 */ setGrahicsDataWithCache(aniIndex: number, frameIndex: number, graphics: laya.display.Graphics): void; /** * 释放纹理 */ destroy(): void; /** * 通过索引得动画名称 * @param index * @return */ getAniNameByIndex(index: number): string; rate: number; } } declare module laya.ani.bone { /** * @private */ class TfConstraint { target: Bone; rotateMix: number; translateMix: number; scaleMix: number; shearMix: number; constructor(data: TfConstraintData, bones: Array<any>); apply(): void; } } declare module laya.ani.bone { /** * @private */ class TfConstraintData { name: string; boneIndexs: Array<any>; targetIndex: number; rotateMix: number; translateMix: number; scaleMix: number; shearMix: number; offsetRotation: number; offsetX: number; offsetY: number; offsetScaleX: number; offsetScaleY: number; offsetShearY: number; } } declare module laya.ani.bone { /** * @private */ class Transform { skX: number; skY: number; scX: number; scY: number; x: number; y: number; initData(data: any): void; getMatrix(): laya.maths.Matrix; } } declare module laya.ani { class GraphicsAni extends laya.display.Graphics { constructor(); /** * @private * 画自定义蒙皮动画 * @param skin */ drawSkin(skin: any): void; } } declare module laya.ani { /** * @private */ class KeyframesAniTemplet extends laya.events.EventDispatcher { private static _uniqueIDCounter; static interpolation: Array<any>; static LAYA_ANIMATION_VISION: string; protected _anis: Array<any>; protected _aniMap: any; protected _publicExtData: ArrayBuffer; protected _useParent: boolean; protected unfixedCurrentFrameIndexes: Uint32Array; protected unfixedCurrentTimes: Float32Array; protected unfixedKeyframes: Array<any>; protected unfixedLastAniIndex: number; protected _loaded: boolean; protected _aniVersion: string; _animationDatasCache: any; loaded: boolean; constructor(); parse(data: ArrayBuffer): void; getAnimationCount(): number; getAnimation(aniIndex: number): any; getAniDuration(aniIndex: number): number; getNodes(aniIndex: number): any; getNodeIndexWithName(aniIndex: number, name: string): number; getNodeCount(aniIndex: number): number; getTotalkeyframesLength(aniIndex: number): number; getPublicExtData(): ArrayBuffer; getAnimationDataWithCache(key: any, cacheDatas: any, aniIndex: number, frameIndex: number): Float32Array; setAnimationDataWithCache(key: any, cacheDatas: Array<any>, aniIndex: number, frameIndex: number, data: any): void; getOriginalData(aniIndex: number, originalData: Float32Array, nodesFrameIndices: Array<any>, frameIndex: number, playCurTime: number): void; getNodesCurrentFrameIndex(aniIndex: number, playCurTime: number): Uint32Array; getOriginalDataUnfixedRate(aniIndex: number, originalData: Float32Array, playCurTime: number): void; } class AnimationContent { nodes: Array<any>; name: string; playTime: number; bone3DMap: any; totalKeyframesLength: number; } class AnimationNodeContent { name: string; parentIndex: number; parent: AnimationNodeContent; keyframeWidth: number; interpolationMethod: Array<any>; childs: Array<any>; keyFrame: Array<any>; playTime: number; extenData: ArrayBuffer; dataOffset: number; } class KeyFramesContent { startTime: number; duration: number; data: Float32Array; dData: Float32Array; nextData: Float32Array; } } declare module laya.ani.swf { /** * <p> <code>MovieClip</code> 用于播放经过工具处理后的 swf 动画。</p> */ class MovieClip extends laya.display.Sprite { protected static _ValueList: Array<any>; protected _start: number; protected _Pos: number; protected _data: laya.utils.Byte; protected _curIndex: number; protected _preIndex: number; protected _playIndex: number; protected _playing: boolean; protected _ended: boolean; protected _count: number; _ids: any; protected _loadedImage: any; _idOfSprite: Array<any>; _parentMovieClip: MovieClip; _movieClipList: Array<any>; protected _labels: any; /**资源根目录。*/ basePath: string; /** 播放间隔(单位:毫秒)。*/ interval: number; /**是否循环播放 */ loop: boolean; /** * 创建一个 <code>MovieClip</code> 实例。 * @param parentMovieClip 父MovieClip,自己创建时不需要传该参数 */ constructor(parentMovieClip?: MovieClip); /** * <p>销毁此对象。以及销毁引用的Texture</p> * @param destroyChild 是否同时销毁子节点,若值为true,则销毁子节点,否则不销毁子节点。 */ destroy(destroyChild?: boolean): void; _setDisplay(value: boolean): void; updates(): void; /**当前播放索引。*/ index: number; /** * 增加一个标签到index帧上,播放到此index后会派发label事件 * @param label 标签名称 * @param index 索引位置 */ addLabel(label: string, index: number): void; /** * 删除某个标签 * @param label 标签名字,如果label为空,则删除所有Label */ removeLabel(label: string): void; /** * 帧总数。 */ count: number; /** * 是否在播放中 */ playing: boolean; /** * 停止播放动画。 */ stop(): void; /** * 跳到某帧并停止播放动画。 * @param frame 要跳到的帧 */ gotoAndStop(index: number): void; /** * 播放动画。 * @param index 帧索引。 */ play(index?: number, loop?: boolean): void; _setData(data: laya.utils.Byte, start: number): void; /** * 资源地址。 */ url: string; /** * 加载资源。 * @param url swf 资源地址。 * @param atlas 是否使用图集资源 * @param atlasPath 图集路径,默认使用与swf同名的图集 */ load(url: string, atlas?: boolean, atlasPath?: string): void; } } declare module laya.d3.component.animation { /** * <code>CameraAnimations</code> 类用于创建摄像机动画组件。 */ class CameraAnimations extends KeyframeAnimations { protected _cacheAnimationDatas: Array<any>; /**变换模式。*/ localMode: boolean; /**叠加模式。*/ addMode: boolean; /** * 创建一个新的 <code>CameraAnimations</code> 实例。 */ 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 { /** * <code>KeyframeAnimation</code> 类用于帧动画组件的父类。 */ 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; /** * 创建一个新的 <code>KeyframeAnimation</code> 实例。 */ 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 { /** * <code>RigidAnimations</code> 类用于创建变换动画组件。 */ class RigidAnimations extends KeyframeAnimations { /** * 设置url地址。 * @param value 地址。 */ url: string; /** * 创建一个新的 <code>RigidAnimations</code> 实例。 */ 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 { /** * <code>SkinAnimations</code> 类用于创建蒙皮动画组件。 */ class SkinAnimations extends KeyframeAnimations { protected static _computeSubMeshAniDatas(subMeshIndex: number, index: Uint8Array, bonesData: Float32Array, animationDatas: Array<any>): void; protected static _copyBone(index: Uint8Array, bonesData: Float32Array, out: Float32Array): void; protected _tempCurAnimationData: Array<any>; protected _tempCurBonesData: Float32Array; protected _curOriginalData: Float32Array; protected _extenData: Float32Array; protected _lastFrameIndex: number; protected _curMeshAnimationData: Float32Array; protected _curBonesDatas: Float32Array; protected _curAnimationDatas: Array<any>; protected _ownerMesh: laya.d3.core.MeshSprite3D; /** * 获取骨骼数据。 * @return 骨骼数据。 */ curBonesDatas: Float32Array; /** * 获取动画数据。 * @return 动画数据。 */ curAnimationDatas: Array<any>; /** * 设置url地址。 * @param value 地址。 */ url: string; /** * 创建一个新的 <code>SkinAnimations</code> 实例。 */ 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 { /** * <code>UVAnimations</code> 类用于创建UV动画组件。 */ class UVAnimations extends KeyframeAnimations { /** * 创建一个新的 <code>UVAnimations</code> 实例。 */ 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 { /** * <code>AttachPoint</code> 类用于创建挂点组件。 */ class AttachPoint extends Component3D { protected _attachSkeleton: laya.d3.component.animation.SkinAnimations; protected _data: Float32Array; protected _extenData: Float32Array; /**挂点骨骼的名称。*/ attachBones: Array<any>; /**挂点骨骼的变换矩阵。*/ matrixs: Array<any>; /** * 创建一个新的 <code>AttachPoint</code> 实例。 */ 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 { /** * <code>Component3D</code> 类用于创建组件的父类。 */ 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; /** * 创建一个新的 <code>Component3D</code> 实例。 */ 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 { /** * <code>PathFinding</code> 类用于创建寻路。 */ class PathFind extends Component3D { _setting: any; /**寻路网格。*/ grid: any; /** * 获取寻路设置。 * @return 寻路设置。 */ /** * 设置寻路设置。 * @param value 寻路设置。 */ setting: any; /** * 创建一个新的 <code>PathFinding</code> 实例。 */ 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): Array<any>; } } declare module laya.d3.component { /** * <code>Script</code> 类用于创建脚本的父类。 */ class Script extends Component3D { /** * 创建一个新的 <code>Script</code> 实例。 */ constructor(); } } declare module laya.d3.core { /** * <code>BaseCamera</code> 类用于创建摄像机的父类。 */ 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; /** * 创建一个 <code>BaseCamera</code> 实例。 * @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 { /** * <code>Camera</code> 类用于创建摄像机。 */ 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; /** * 创建一个 <code>Camera</code> 实例。 * @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 { /** * <code>Glitter</code> 类用于创建闪光。 */ class Glitter extends laya.d3.core.Sprite3D { /** * 获取闪光模板。 * @return 闪光模板。 */ templet: laya.d3.resource.tempelet.GlitterTemplet; /** * 获取刀光渲染器。 * @return 刀光渲染器。 */ glitterRender: laya.d3.core.GlitterRender; /** * 创建一个 <code>Glitter</code> 实例。 * @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 { /** * <code>Glitter</code> 类用于创建闪光配置信息。 */ class GlitterSetting { /** 纹理。 */ texturePath: string; /** 声明周期。 */ lifeTime: number; /** 最小分段距离。 */ minSegmentDistance: number; /** 最小插值距离。 */ minInterpDistance: number; /** 最大插值数量。 */ maxSlerpCount: number; /** 颜色。 */ color: laya.d3.math.Vector4; /** 最大段数。 */ maxSegments: number; /** * 创建一个 <code>GlitterSettings</code> 实例。 */ constructor(); } } declare module laya.d3.core.glitter { /** * <code>SplineCurvePosition</code> 类用于通过顶点创建闪光插值。 */ class SplineCurvePosition extends SplineCurvePositionVelocity { /** * 创建一个 <code>SplineCurvePosition</code> 实例。 */ 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 { /** * <code>SplineCurvePositionVelocity</code> 类用于通过顶点和速度创建闪光插值。 */ 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; /** * 创建一个 <code>SplineCurvePositionVelocity</code> 实例。 */ 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 { /** * <code>HeightMap</code> 类用于实现高度图数据。 */ 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; /** * 创建一个 <code>HeightMap</code> 实例。 * @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 { /** * <code>Layer</code> 类用于实现遮罩层。 */ class Layer { protected static _uniqueIDCounter: number; protected static _layerList: Array<any>; protected static _activeLayers: number; protected static _visibleLayers: number; /**当前相机遮罩。*/ static _currentCameraCullingMask: number; /**当前创建精灵所属遮罩层。*/ static currentCreationLayer: Layer; /** *获取Layer激活层。 * @return 激活层。 */ /** * 设置Layer激活层。 * @param value 激活层。 */ static activeLayers: number; /** *获取Layer显示层。 * @return 显示层。 */ /** *设置Layer显示层。 * @param value 显示层。 */ static visibleLayers: number; /** * @private */ static __init__(): void; /** *通过编号获取蒙版。 * @param number 编号。 * @return 蒙版。 */ static getLayerByNumber(number: number): Layer; /** *通过蒙版值获取蒙版。 * @param mask 编号。 * @return 蒙版。 */ static getLayerByMask(mask: number): Layer; /** *通过蒙版值获取蒙版。 * @param name 名字。 * @return 蒙版。 */ static getLayerByName(name: string): Layer; /** *通过蒙版值获取蒙版是否激活。 * @param mask 蒙版值。 * @return 是否激活。 */ static isActive(mask: number): boolean; /** *通过蒙版值获取蒙版是否显示。 * @param mask 蒙版值。 * @return 是否显示。 */ static isVisible(mask: number): boolean; protected _id: number; protected _number: number; protected _mask: number; protected _active: boolean; protected _visible: boolean; /**名字。*/ name: string; /** *获取编号。 * @return 编号。 */ number: number; /** *获取蒙版值。 * @return 蒙版值。 */ mask: number; /** *获取是否激活。 * @return 是否激活。 */ /** *设置是否激活。 * @param value 是否激活。 */ active: boolean; /** *获取是否显示。 * @return 是否显示。 */ /** *设置是否显示。 * @param value 是否显示。 */ visible: boolean; /** * 创建一个 <code>Layer</code> 实例。 */ constructor(); } } declare module laya.d3.core.light { /** * <code>DirectionLight</code> 类用于创建平行光。 */ class DirectionLight extends L