UNPKG

dragonbones-runtime

Version:

the tools to build dragonbones file for diffrent framework

688 lines (687 loc) 29.1 kB
var __reflect = (this && this.__reflect) || function (p, c, t) { p.__class__ = c, t ? t.push(c) : t = [c], p.__types__ = p.__types__ ? t.concat(p.__types__) : t; }; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); ////////////////////////////////////////////////////////////////////////////////////// // // 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. // ////////////////////////////////////////////////////////////////////////////////////// var egret; (function (egret) { })(egret || (egret = {})); ////////////////////////////////////////////////////////////////////////////////////// // // 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. // ////////////////////////////////////////////////////////////////////////////////////// var egret; (function (egret) { /** * The egret.WebSocket class enables code to establish a TCP socket connection, for sending and receiving character string or binary data. * To use the methods of the egret.WebSocket class, first use the constructor function new egret.WebSocket to create an egret.WebSocket object. * The socket transmits and receives data in asynchronous mode. * @event egret.Event.CONNECT Successfully connect to the server。 * @event egret.ProgressEvent.SOCKET_DATA Receiving server data。 * @event egret.Event.CLOSE Dispatched when the server closes the connection. * @event egret.ProgressEvent Dispatched when an IO error causes a send or load operation to fail. * @see http://edn.egret.com/cn/docs/page/602 WebSocket * @version Egret 2.4 * @platform Web,Native * @includeExample extension/socket/WebSocket.ts * @language en_US */ /** * egret.WebSocket 类启用代码以建立传输控制协议 (TCP) 套接字连接,用于发送和接收字符串或二进制数据。 * 要使用 egret.WebSocket 类的方法,请先使用构造函数 new egret.WebSocket 创建一个 egret.WebSocket 对象。 * 套接字以异步方式传输和接收数据。 * @event egret.Event.CONNECT 连接服务器成功。 * @event egret.ProgressEvent.SOCKET_DATA 接收服务器数据。 * @event egret.Event.CLOSE 在服务器关闭连接时调度。 * @event egret.IOErrorEvent.IO_ERROR 在出现输入/输出错误并导致发送或加载操作失败时调度。。 * @see http://edn.egret.com/cn/docs/page/602 WebSocket * @version Egret 2.4 * @platform Web,Native * @includeExample extension/socket/WebSocket.ts * @language zh_CN */ var WebSocket = (function (_super) { __extends(WebSocket, _super); /** * Create an egret.WebSocket object * This parameter is reserved for later versions. The connection address and port number are imported in the connect function * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 创建一个 egret.WebSocket 对象 * 参数为预留参数,现版本暂不处理,连接地址和端口号在 connect 函数中传入 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ function WebSocket(host, port) { if (host === void 0) { host = ""; } if (port === void 0) { port = 0; } var _this = _super.call(this) || this; /** * @private */ _this._writeMessage = ""; /** * @private */ _this._readMessage = ""; /** * @private */ _this._connected = false; /** * @private */ _this._connecting = false; /** * @private */ _this._isReadySend = false; /** * @private */ _this._bytesWrite = false; /** * @private */ _this._type = WebSocket.TYPE_STRING; _this._connected = false; _this._writeMessage = ""; _this._readMessage = ""; _this.socket = new egret.ISocket(); _this.socket.addCallBacks(_this.onConnect, _this.onClose, _this.onSocketData, _this.onError, _this); return _this; } /** * Connect the socket to the specified host and port number * @param host Name or IP address of the host to be connected * @param port Port number to be connected * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 将套接字连接到指定的主机和端口 * @param host 要连接到的主机的名称或 IP 地址 * @param port 要连接到的端口号 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.connect = function (host, port) { if (!this._connecting && !this._connected) { this._connecting = true; this.socket.connect(host, port); } }; /** * 根据提供的url连接 * @param url 全地址。如ws://echo.websocket.org:80 */ WebSocket.prototype.connectByUrl = function (url) { if (!this._connecting && !this._connected) { this._connecting = true; this.socket.connectByUrl(url); } }; /** * Closesocket * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 关闭套接字 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.close = function () { if (this._connected) { this.socket.close(); } }; /** * @private * */ WebSocket.prototype.onConnect = function () { this._connected = true; this._connecting = false; this.dispatchEventWith(egret.Event.CONNECT); }; /** * @private * */ WebSocket.prototype.onClose = function () { this._connected = false; this.dispatchEventWith(egret.Event.CLOSE); }; /** * @private * */ WebSocket.prototype.onError = function () { if (this._connecting) { this._connecting = false; } this.dispatchEventWith(egret.IOErrorEvent.IO_ERROR); }; /** * @private * * @param message */ WebSocket.prototype.onSocketData = function (message) { if (typeof message == "string") { this._readMessage += message; } else { this._readByte._writeUint8Array(new Uint8Array(message)); } egret.ProgressEvent.dispatchProgressEvent(this, egret.ProgressEvent.SOCKET_DATA); }; /** * Refresh all data accumulated in the output buffer area of the socket * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 对套接字输出缓冲区中积累的所有数据进行刷新 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.flush = function () { if (!this._connected) { egret.$warn(3101); return; } if (this._writeMessage) { this.socket.send(this._writeMessage); this._writeMessage = ""; } if (this._bytesWrite) { this.socket.send(this._writeByte.buffer); this._bytesWrite = false; this._writeByte.clear(); } this._isReadySend = false; }; /** * Write data in character string in the socket * @param message The character string to be written in the socket * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 将字符串数据写入套接字 * @param message 要写入套接字的字符串 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.writeUTF = function (message) { if (!this._connected) { egret.$warn(3101); return; } if (this._type == WebSocket.TYPE_BINARY) { this._bytesWrite = true; this._writeByte.writeUTF(message); } else { this._writeMessage += message; } this.flush(); // return; // if (this._isReadySend) { // return; // } // this._isReadySend = true; // egret.callLater(this.flush, this); }; /** * Read a UTF-8 character string from the socket * @returns {string} * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 从套接字读取一个 UTF-8 字符串 * @returns {string} * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.readUTF = function () { var message; if (this._type == WebSocket.TYPE_BINARY) { this._readByte.position = 0; message = this._readByte.readUTF(); this._readByte.clear(); } else { message = this._readMessage; this._readMessage = ""; } return message; }; /** * Write a series of bytes from the specified byte array. The writing operation starts from the location expressed by offset. * If the length parameter is ignored, the default length 0 indicates that data is written from offset in the entire buffer area. * If the offset parameter is ignored, data is written in the entire buffer area. * @param bytes The ByteArray object where data is read from * @param offset Zero-based offset in the ByteArray object. From here start performing data writing * @param length Number of bytes to be written Default value 0 indicates data is written in the entire buffer area from the value specified by the offset parameter * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 从指定的字节数组写入一系列字节。写入操作从 offset 指定的位置开始。 * 如果省略了 length 参数,则默认长度 0 将导致该方法从 offset 开始写入整个缓冲区。 * 如果还省略了 offset 参数,则写入整个缓冲区。 * @param bytes 要从中读取数据的 ByteArray 对象 * @param offset ByteArray 对象中从零开始的偏移量,应由此开始执行数据写入 * @param length 要写入的字节数。默认值 0 导致从 offset 参数指定的值开始写入整个缓冲区 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.writeBytes = function (bytes, offset, length) { if (offset === void 0) { offset = 0; } if (length === void 0) { length = 0; } if (!this._connected) { egret.$warn(3101); return; } if (!this._writeByte) { egret.$warn(3102); return; } this._bytesWrite = true; this._writeByte.writeBytes(bytes, offset, length); this.flush(); }; /** * Read data byte number specified by the length parameter from the socket. Read these bytes into the specified byte array starting from the location expressed by offset. * @param bytes The ByteArray object that data is read into * @param offset The offset for data reading starts from this byte array * @param length Byte number to be read Default value 0 indicates reading all available data * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 从套接字读取 length 参数指定的数据字节数。从 offset 所表示的位置开始,将这些字节读入指定的字节数组 * @param bytes 要将数据读入的 ByteArray 对象 * @param offset 数据读取的偏移量应从该字节数组中开始 * @param length 要读取的字节数。默认值 0 导致读取所有可用的数据 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.prototype.readBytes = function (bytes, offset, length) { if (offset === void 0) { offset = 0; } if (length === void 0) { length = 0; } if (!this._readByte) { egret.$warn(3102); return; } this._readByte.position = 0; this._readByte.readBytes(bytes, offset, length); this._readByte.clear(); }; Object.defineProperty(WebSocket.prototype, "connected", { /** * Indicates whether the Socket object is connected currently * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 表示此 Socket 对象目前是否已连接 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ get: function () { return this._connected; }, enumerable: true, configurable: true }); Object.defineProperty(WebSocket.prototype, "type", { /** * Format for sending and receiving data. The default setting is the character string format * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 发送和接收数据的格式,默认是字符串格式 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ get: function () { return this._type; }, set: function (value) { this._type = value; if (value == WebSocket.TYPE_BINARY && !this._writeByte) { this._readByte = new egret.ByteArray(); this._writeByte = new egret.ByteArray(); } }, enumerable: true, configurable: true }); /** * Send and receive data in character string format * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 以字符串格式发送和接收数据 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.TYPE_STRING = "webSocketTypeString"; /** * Send and receive data in binary format * @version Egret 2.4 * @platform Web,Native * @language en_US */ /** * 以二进制格式发送和接收数据 * @version Egret 2.4 * @platform Web,Native * @language zh_CN */ WebSocket.TYPE_BINARY = "webSocketTypeBinary"; return WebSocket; }(egret.EventDispatcher)); egret.WebSocket = WebSocket; __reflect(WebSocket.prototype, "egret.WebSocket"); })(egret || (egret = {})); ////////////////////////////////////////////////////////////////////////////////////// // // 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. // ////////////////////////////////////////////////////////////////////////////////////// var egret; (function (egret) { var native; (function (native) { /** * @private */ var NativeSocket = (function () { function NativeSocket() { this.host = ""; this.port = 0; } NativeSocket.prototype.addCallBacks = function (onConnect, onClose, onSocketData, onError, thisObject) { this.onConnect = onConnect; this.onClose = onClose; this.onSocketData = onSocketData; this.onError = onError; this.thisObject = thisObject; }; NativeSocket.prototype.connect = function (host, port) { this.host = host; this.port = port; var socketServerUrl = "ws://" + this.host + ":" + this.port; this.socket = new __global["egret_native"]["WebSocket"](socketServerUrl); this._bindEvent(); }; NativeSocket.prototype.connectByUrl = function (url) { this.socket = new __global["egret_native"]["WebSocket"](url); this._bindEvent(); }; NativeSocket.prototype._bindEvent = function () { var that = this; var socket = this.socket; socket.onOpen = function () { if (that.onConnect) { that.onConnect.call(that.thisObject); } }; socket.onClose = function () { if (that.onClose) { that.onClose.call(that.thisObject); } }; socket.onError = function (errorCode) { if (that.onError) { that.onError.call(that.thisObject); } }; socket.onMessage = function (message) { if (that.onSocketData) { that.onSocketData.call(that.thisObject, message); } }; }; NativeSocket.prototype.send = function (message) { this.socket.send(message); }; NativeSocket.prototype.close = function () { this.socket.close(); }; NativeSocket.prototype.disconnect = function () { if (this.socket.disconnect) { this.socket.disconnect(); } }; return NativeSocket; }()); native.NativeSocket = NativeSocket; __reflect(NativeSocket.prototype, "egret.native.NativeSocket", ["egret.ISocket"]); if (egret.Capabilities.runtimeType == egret.RuntimeType.NATIVE) { egret.ISocket = NativeSocket; } })(native = egret.native || (egret.native = {})); })(egret || (egret = {})); ////////////////////////////////////////////////////////////////////////////////////// // // 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. // ////////////////////////////////////////////////////////////////////////////////////// var egret; (function (egret) { var web; (function (web) { /** * @private */ var HTML5WebSocket = (function () { function HTML5WebSocket() { this.host = ""; this.port = 0; if (!window["WebSocket"]) { egret.$error(3100); } } HTML5WebSocket.prototype.addCallBacks = function (onConnect, onClose, onSocketData, onError, thisObject) { this.onConnect = onConnect; this.onClose = onClose; this.onSocketData = onSocketData; this.onError = onError; this.thisObject = thisObject; }; HTML5WebSocket.prototype.connect = function (host, port) { this.host = host; this.port = port; var socketServerUrl = "ws://" + this.host + ":" + this.port; this.socket = new window["WebSocket"](socketServerUrl); this.socket.binaryType = "arraybuffer"; this._bindEvent(); }; HTML5WebSocket.prototype.connectByUrl = function (url) { this.socket = new window["WebSocket"](url); this.socket.binaryType = "arraybuffer"; this._bindEvent(); }; HTML5WebSocket.prototype._bindEvent = function () { var that = this; var socket = this.socket; socket.onopen = function () { if (that.onConnect) { that.onConnect.call(that.thisObject); } }; socket.onclose = function (e) { if (that.onClose) { that.onClose.call(that.thisObject); } }; socket.onerror = function (e) { if (that.onError) { that.onError.call(that.thisObject); } }; socket.onmessage = function (e) { if (that.onSocketData) { that.onSocketData.call(that.thisObject, e.data); } }; }; HTML5WebSocket.prototype.send = function (message) { this.socket.send(message); }; HTML5WebSocket.prototype.close = function () { this.socket.close(); }; HTML5WebSocket.prototype.disconnect = function () { if (this.socket.disconnect) { this.socket.disconnect(); } }; return HTML5WebSocket; }()); web.HTML5WebSocket = HTML5WebSocket; __reflect(HTML5WebSocket.prototype, "egret.web.HTML5WebSocket", ["egret.ISocket"]); if (egret.Capabilities.runtimeType == egret.RuntimeType.WEB) { egret.ISocket = HTML5WebSocket; } })(web = egret.web || (egret.web = {})); })(egret || (egret = {}));