UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

354 lines (298 loc) 15.7 kB
/** * The MIT License (MIT) * * Copyright (c) 2012-2017 DragonBones team and other contributors * * Permission is hereby granted, free of charge, to any person obtaining a copy of * this software and associated documentation files (the "Software"), to deal in * the Software without restriction, including without limitation the rights to * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of * the Software, and to permit persons to whom the Software is furnished to do so, * subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ namespace dragonBones { /** * @internal * @private */ export abstract class DataParser { protected static readonly DATA_VERSION_2_3: string = "2.3"; protected static readonly DATA_VERSION_3_0: string = "3.0"; protected static readonly DATA_VERSION_4_0: string = "4.0"; protected static readonly DATA_VERSION_4_5: string = "4.5"; protected static readonly DATA_VERSION_5_0: string = "5.0"; protected static readonly DATA_VERSION_5_5: string = "5.5"; protected static readonly DATA_VERSION: string = DataParser.DATA_VERSION_5_5; protected static readonly DATA_VERSIONS: Array<string> = [ DataParser.DATA_VERSION_4_0, DataParser.DATA_VERSION_4_5, DataParser.DATA_VERSION_5_0, DataParser.DATA_VERSION_5_5 ]; protected static readonly TEXTURE_ATLAS: string = "textureAtlas"; protected static readonly SUB_TEXTURE: string = "SubTexture"; protected static readonly FORMAT: string = "format"; protected static readonly IMAGE_PATH: string = "imagePath"; protected static readonly WIDTH: string = "width"; protected static readonly HEIGHT: string = "height"; protected static readonly ROTATED: string = "rotated"; protected static readonly FRAME_X: string = "frameX"; protected static readonly FRAME_Y: string = "frameY"; protected static readonly FRAME_WIDTH: string = "frameWidth"; protected static readonly FRAME_HEIGHT: string = "frameHeight"; protected static readonly DRADON_BONES: string = "dragonBones"; protected static readonly USER_DATA: string = "userData"; protected static readonly ARMATURE: string = "armature"; protected static readonly BONE: string = "bone"; protected static readonly SURFACE: string = "surface"; protected static readonly SLOT: string = "slot"; protected static readonly CONSTRAINT: string = "constraint"; protected static readonly IK: string = "ik"; protected static readonly SKIN: string = "skin"; protected static readonly DISPLAY: string = "display"; protected static readonly ANIMATION: string = "animation"; protected static readonly Z_ORDER: string = "zOrder"; protected static readonly FFD: string = "ffd"; protected static readonly FRAME: string = "frame"; protected static readonly TRANSLATE_FRAME: string = "translateFrame"; protected static readonly ROTATE_FRAME: string = "rotateFrame"; protected static readonly SCALE_FRAME: string = "scaleFrame"; protected static readonly DISPLAY_FRAME: string = "displayFrame"; protected static readonly COLOR_FRAME: string = "colorFrame"; protected static readonly DEFAULT_ACTIONS: string = "defaultActions"; protected static readonly ACTIONS: string = "actions"; protected static readonly EVENTS: string = "events"; protected static readonly INTS: string = "ints"; protected static readonly FLOATS: string = "floats"; protected static readonly STRINGS: string = "strings"; protected static readonly CANVAS: string = "canvas"; protected static readonly TRANSFORM: string = "transform"; protected static readonly PIVOT: string = "pivot"; protected static readonly AABB: string = "aabb"; protected static readonly COLOR: string = "color"; protected static readonly VERSION: string = "version"; protected static readonly COMPATIBLE_VERSION: string = "compatibleVersion"; protected static readonly FRAME_RATE: string = "frameRate"; protected static readonly TYPE: string = "type"; protected static readonly SUB_TYPE: string = "subType"; protected static readonly NAME: string = "name"; protected static readonly PARENT: string = "parent"; protected static readonly TARGET: string = "target"; protected static readonly STAGE: string = "stage"; protected static readonly SHARE: string = "share"; protected static readonly PATH: string = "path"; protected static readonly LENGTH: string = "length"; protected static readonly DISPLAY_INDEX: string = "displayIndex"; protected static readonly BLEND_MODE: string = "blendMode"; protected static readonly INHERIT_TRANSLATION: string = "inheritTranslation"; protected static readonly INHERIT_ROTATION: string = "inheritRotation"; protected static readonly INHERIT_SCALE: string = "inheritScale"; protected static readonly INHERIT_REFLECTION: string = "inheritReflection"; protected static readonly INHERIT_ANIMATION: string = "inheritAnimation"; protected static readonly INHERIT_DEFORM: string = "inheritDeform"; protected static readonly SEGMENT_X: string = "segmentX"; protected static readonly SEGMENT_Y: string = "segmentY"; protected static readonly BEND_POSITIVE: string = "bendPositive"; protected static readonly CHAIN: string = "chain"; protected static readonly WEIGHT: string = "weight"; protected static readonly FADE_IN_TIME: string = "fadeInTime"; protected static readonly PLAY_TIMES: string = "playTimes"; protected static readonly SCALE: string = "scale"; protected static readonly OFFSET: string = "offset"; protected static readonly POSITION: string = "position"; protected static readonly DURATION: string = "duration"; protected static readonly TWEEN_EASING: string = "tweenEasing"; protected static readonly TWEEN_ROTATE: string = "tweenRotate"; protected static readonly TWEEN_SCALE: string = "tweenScale"; protected static readonly CLOCK_WISE: string = "clockwise"; protected static readonly CURVE: string = "curve"; protected static readonly SOUND: string = "sound"; protected static readonly EVENT: string = "event"; protected static readonly ACTION: string = "action"; protected static readonly X: string = "x"; protected static readonly Y: string = "y"; protected static readonly SKEW_X: string = "skX"; protected static readonly SKEW_Y: string = "skY"; protected static readonly SCALE_X: string = "scX"; protected static readonly SCALE_Y: string = "scY"; protected static readonly VALUE: string = "value"; protected static readonly ROTATE: string = "rotate"; protected static readonly SKEW: string = "skew"; protected static readonly ALPHA_OFFSET: string = "aO"; protected static readonly RED_OFFSET: string = "rO"; protected static readonly GREEN_OFFSET: string = "gO"; protected static readonly BLUE_OFFSET: string = "bO"; protected static readonly ALPHA_MULTIPLIER: string = "aM"; protected static readonly RED_MULTIPLIER: string = "rM"; protected static readonly GREEN_MULTIPLIER: string = "gM"; protected static readonly BLUE_MULTIPLIER: string = "bM"; protected static readonly UVS: string = "uvs"; protected static readonly VERTICES: string = "vertices"; protected static readonly TRIANGLES: string = "triangles"; protected static readonly WEIGHTS: string = "weights"; protected static readonly SLOT_POSE: string = "slotPose"; protected static readonly BONE_POSE: string = "bonePose"; protected static readonly GLUE_WEIGHTS: string = "glueWeights"; protected static readonly GLUE_MESHES: string = "glueMeshes"; protected static readonly GOTO_AND_PLAY: string = "gotoAndPlay"; protected static readonly DEFAULT_NAME: string = "default"; protected static _getArmatureType(value: string): ArmatureType { switch (value.toLowerCase()) { case "stage": return ArmatureType.Stage; case "armature": return ArmatureType.Armature; case "movieclip": return ArmatureType.MovieClip; default: return ArmatureType.Armature; } } protected static _getBoneType(value: string): BoneType { switch (value.toLowerCase()) { case "bone": return BoneType.Bone; case "surface": return BoneType.Surface; default: return BoneType.Bone; } } protected static _getDisplayType(value: string): DisplayType { switch (value.toLowerCase()) { case "image": return DisplayType.Image; case "mesh": return DisplayType.Mesh; case "armature": return DisplayType.Armature; case "boundingbox": return DisplayType.BoundingBox; default: return DisplayType.Image; } } protected static _getBoundingBoxType(value: string): BoundingBoxType { switch (value.toLowerCase()) { case "rectangle": return BoundingBoxType.Rectangle; case "ellipse": return BoundingBoxType.Ellipse; case "polygon": return BoundingBoxType.Polygon; default: return BoundingBoxType.Rectangle; } } protected static _getActionType(value: string): ActionType { switch (value.toLowerCase()) { case "play": return ActionType.Play; case "frame": return ActionType.Frame; case "sound": return ActionType.Sound; default: return ActionType.Play; } } protected static _getBlendMode(value: string): BlendMode { switch (value.toLowerCase()) { case "normal": return BlendMode.Normal; case "add": return BlendMode.Add; case "alpha": return BlendMode.Alpha; case "darken": return BlendMode.Darken; case "difference": return BlendMode.Difference; case "erase": return BlendMode.Erase; case "hardlight": return BlendMode.HardLight; case "invert": return BlendMode.Invert; case "layer": return BlendMode.Layer; case "lighten": return BlendMode.Lighten; case "multiply": return BlendMode.Multiply; case "overlay": return BlendMode.Overlay; case "screen": return BlendMode.Screen; case "subtract": return BlendMode.Subtract; default: return BlendMode.Normal; } } public abstract parseDragonBonesData(rawData: any, scale: number): DragonBonesData | null; public abstract parseTextureAtlasData(rawData: any, textureAtlasData: TextureAtlasData, scale: number): boolean; /** * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}. * @deprecated * @language en_US */ /** * - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。 * @deprecated * @language zh_CN */ public static parseDragonBonesData(rawData: any): DragonBonesData | null { if (rawData instanceof ArrayBuffer) { return BinaryDataParser.getInstance().parseDragonBonesData(rawData); } else { return ObjectDataParser.getInstance().parseDragonBonesData(rawData); } } /** * - Deprecated, please refer to {@link dragonBones.BaseFactory#parsetTextureAtlasData()}. * @deprecated * @language en_US */ /** * - 已废弃,请参考 {@link dragonBones.BaseFactory#parsetTextureAtlasData()}。 * @deprecated * @language zh_CN */ public static parseTextureAtlasData(rawData: any, scale: number = 1): any { console.warn("已废弃"); const textureAtlasData = {} as any; const subTextureList = rawData[DataParser.SUB_TEXTURE]; for (let i = 0, len = subTextureList.length; i < len; i++) { const subTextureObject = subTextureList[i]; const subTextureName = subTextureObject[DataParser.NAME]; const subTextureRegion = new Rectangle(); let subTextureFrame: Rectangle | null = null; subTextureRegion.x = subTextureObject[DataParser.X] / scale; subTextureRegion.y = subTextureObject[DataParser.Y] / scale; subTextureRegion.width = subTextureObject[DataParser.WIDTH] / scale; subTextureRegion.height = subTextureObject[DataParser.HEIGHT] / scale; if (DataParser.FRAME_WIDTH in subTextureObject) { subTextureFrame = new Rectangle(); subTextureFrame.x = subTextureObject[DataParser.FRAME_X] / scale; subTextureFrame.y = subTextureObject[DataParser.FRAME_Y] / scale; subTextureFrame.width = subTextureObject[DataParser.FRAME_WIDTH] / scale; subTextureFrame.height = subTextureObject[DataParser.FRAME_HEIGHT] / scale; } textureAtlasData[subTextureName] = { region: subTextureRegion, frame: subTextureFrame, rotated: false }; } return textureAtlasData; } } }