UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

80 lines (77 loc) 3.83 kB
////////////////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2014-present, Egret Technology. // All rights reserved. // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above copyright // notice, this list of conditions and the following disclaimer in the // documentation and/or other materials provided with the distribution. // * Neither the name of the Egret nor the // names of its contributors may be used to endorse or promote products // derived from this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY EGRET AND CONTRIBUTORS "AS IS" AND ANY EXPRESS // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. // IN NO EVENT SHALL EGRET AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;LOSS OF USE, DATA, // OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // ////////////////////////////////////////////////////////////////////////////////////// namespace egret { /** * Return the fully qualified class name of an object * @param value The object for which a fully qualified class name is desired. Any JavaScript value may be passed to * this method including all available JavaScript types, object instances, primitive types such as number, and class objects. * @returns A string containing the fully qualified class name. * @example * <pre> * egret.getQualifiedClassName(egret.DisplayObject) //return "egret.DisplayObject" * </pre> * @version Egret 2.4 * @platform Web,Native * @includeExample egret/utils/getQualifiedClassName.ts * @language en_US */ /** * 返回对象的完全限定类名。 * @param value 需要完全限定类名称的对象,可以将任何 JavaScript 值传递给此方法,包括所有可用的 JavaScript 类型、对象实例、原始类型 * (如number)和类对象 * @returns 包含完全限定类名称的字符串。 * @example * <pre> * egret.getQualifiedClassName(egret.DisplayObject) //返回 "egret.DisplayObject" * </pre> * @version Egret 2.4 * @platform Web,Native * @includeExample egret/utils/getQualifiedClassName.ts * @language zh_CN */ export function getQualifiedClassName(value:any):string { let type = typeof value; if (!value || (type != "object"&&!value.prototype)) { return type; } let prototype:any = value.prototype ? value.prototype : Object.getPrototypeOf(value); if (prototype.hasOwnProperty("__class__")) { return prototype["__class__"]; } let constructorString:string = prototype.constructor.toString().trim(); let index:number = constructorString.indexOf("("); let className:string = constructorString.substring(9, index); Object.defineProperty(prototype, "__class__", { value: className, enumerable: false, writable: true }); return className; } }