|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- 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 (d, b) {
- for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
- 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) {
- var web;
- (function (web) {
- /**
- * @class egret.HTML5NetContext
- * @classdesc
- * @extends egret.NetContext
- * @private
- */
- var HTML5NetContext = (function (_super) {
- __extends(HTML5NetContext, _super);
- /**
- * @private
- */
- function HTML5NetContext() {
- return _super.call(this) || this;
- }
- /**
- * @private
- *
- * @param loader
- */
- HTML5NetContext.prototype.proceed = function (loader) {
- var self = this;
- if (loader.dataFormat == egret.URLLoaderDataFormat.TEXTURE) {
- this.loadTexture(loader);
- return;
- }
- if (loader.dataFormat == egret.URLLoaderDataFormat.SOUND) {
- this.loadSound(loader);
- return;
- }
- var request = loader._request;
- var virtualUrl = self.getVirtualUrl(egret.$getUrl(request));
- var httpLoader = new egret.HttpRequest();
- httpLoader.addEventListener(egret.Event.COMPLETE, onLoadComplete, this);
- httpLoader.addEventListener(egret.IOErrorEvent.IO_ERROR, onError, this);
- httpLoader.addEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, this);
- httpLoader.open(virtualUrl, request.method);
- httpLoader.responseType = this.getResponseType(loader.dataFormat);
- if (request.method == egret.URLRequestMethod.GET || !request.data) {
- httpLoader.send();
- }
- else if (request.data instanceof egret.URLVariables) {
- httpLoader.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
- var urlVars = request.data;
- httpLoader.send(urlVars.toString());
- }
- else {
- httpLoader.setRequestHeader("Content-Type", "multipart/form-data");
- httpLoader.send(request.data);
- }
- /*function onReadyStateChange() {
- if (xhr.readyState == 4) {// 4 = "loaded"
- if (xhr.status != loader._status) {
- loader._status = xhr.status;
- HTTPStatusEvent.dispatchHTTPStatusEvent(loader, xhr.status);
- }
-
- if (xhr.status >= 400 || xhr.status == 0) {//请求错误
- IOErrorEvent.dispatchIOErrorEvent(loader);
- }
- else {
- onLoadComplete();
- }
- }
- }*/
- function onPostProgress(event) {
- loader.dispatchEvent(event);
- }
- function onError(event) {
- removeListeners();
- loader.dispatchEvent(event);
- }
- function onLoadComplete() {
- removeListeners();
- switch (loader.dataFormat) {
- case egret.URLLoaderDataFormat.VARIABLES:
- loader.data = new egret.URLVariables(httpLoader.response);
- break;
- //case URLLoaderDataFormat.TEXT:
- // loader.data = httpLoader.response;
- // break;
- //case URLLoaderDataFormat.BINARY:
- // loader.data = httpLoader.response;
- // break;
- default:
- loader.data = httpLoader.response;
- break;
- }
- window.setTimeout(function () {
- egret.Event.dispatchEvent(loader, egret.Event.COMPLETE);
- }, 0);
- }
- function removeListeners() {
- httpLoader.removeEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- httpLoader.removeEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- httpLoader.removeEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- }
- };
- /**
- * @private
- *
- * @param dataFormat
- */
- HTML5NetContext.prototype.getResponseType = function (dataFormat) {
- switch (dataFormat) {
- case egret.URLLoaderDataFormat.TEXT:
- case egret.URLLoaderDataFormat.VARIABLES:
- return egret.URLLoaderDataFormat.TEXT;
- case egret.URLLoaderDataFormat.BINARY:
- return "arraybuffer";
- default:
- return dataFormat;
- }
- };
- /**
- * @private
- *
- * @param loader
- */
- HTML5NetContext.prototype.loadSound = function (loader) {
- var self = this;
- var virtualUrl = this.getVirtualUrl(loader._request.url);
- var sound = new egret.Sound();
- sound.addEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- sound.addEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- sound.addEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- sound.load(virtualUrl);
- function onPostProgress(event) {
- loader.dispatchEvent(event);
- }
- function onError(event) {
- removeListeners();
- loader.dispatchEvent(event);
- }
- function onLoadComplete(e) {
- removeListeners();
- loader.data = sound;
- window.setTimeout(function () {
- loader.dispatchEventWith(egret.Event.COMPLETE);
- }, 0);
- }
- function removeListeners() {
- sound.removeEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- sound.removeEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- sound.removeEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- }
- };
- /**
- * @private
- *
- * @param loader
- */
- HTML5NetContext.prototype.loadTexture = function (loader) {
- var self = this;
- var virtualUrl = this.getVirtualUrl(loader._request.url);
- var imageLoader = new egret.ImageLoader();
- imageLoader.addEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- imageLoader.addEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- imageLoader.addEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- imageLoader.load(virtualUrl);
- function onPostProgress(event) {
- loader.dispatchEvent(event);
- }
- function onError(event) {
- removeListeners();
- loader.dispatchEvent(event);
- }
- function onLoadComplete(e) {
- removeListeners();
- var bitmapData = imageLoader.data;
- bitmapData.source.setAttribute("bitmapSrc", virtualUrl);
- var texture = new egret.Texture();
- texture._setBitmapData(bitmapData);
- loader.data = texture;
- window.setTimeout(function () {
- loader.dispatchEventWith(egret.Event.COMPLETE);
- }, self);
- }
- function removeListeners() {
- imageLoader.removeEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- imageLoader.removeEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- imageLoader.removeEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- }
- };
- /**
- * @private
- *
- * @returns
- */
- HTML5NetContext.prototype.getChangeList = function () {
- return [];
- };
- /**
- * @private
- * 获取虚拟url
- * @param url
- * @returns {string}
- */
- HTML5NetContext.prototype.getVirtualUrl = function (url) {
- return url;
- };
- HTML5NetContext.getNetContext = function () {
- if (HTML5NetContext._instance == null) {
- HTML5NetContext._instance = new HTML5NetContext();
- }
- return HTML5NetContext._instance;
- };
- return HTML5NetContext;
- }(egret.HashObject));
- web.HTML5NetContext = HTML5NetContext;
- __reflect(HTML5NetContext.prototype, "egret.web.HTML5NetContext", ["egret.NetContext"]);
- egret.NetContext = HTML5NetContext;
- })(web = egret.web || (egret.web = {}));
- })(egret || (egret = {}));
|