|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- 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 native;
- (function (native) {
- /**
- * @private
- */
- var NativeNetContext = (function (_super) {
- __extends(NativeNetContext, _super);
- function NativeNetContext() {
- var _this = _super.call(this) || this;
- _this.urlData = {};
- return _this;
- }
- /**
- * @method egret.HTML5NetContext#proceed
- * @param loader {URLLoader}
- */
- NativeNetContext.prototype.proceed = function (loader) {
- var self = this;
- if (loader.dataFormat == egret.URLLoaderDataFormat.TEXTURE) {
- self.loadTexture(loader);
- return;
- }
- if (loader.dataFormat == egret.URLLoaderDataFormat.SOUND) {
- self.loadSound(loader);
- return;
- }
- var request = loader._request;
- var virtualUrl = self.getVirtualUrl(egret.$getUrl(request));
- var httpRequest = new egret.HttpRequest();
- httpRequest.open(virtualUrl, request.method == egret.URLRequestMethod.POST ? egret.HttpMethod.POST : egret.HttpMethod.GET);
- var length = request.requestHeaders.length;
- for (var i = 0; i < length; i++) {
- var urlRequestHeader = request.requestHeaders[i];
- httpRequest.setRequestHeader(urlRequestHeader.name, urlRequestHeader.value);
- }
- httpRequest.addEventListener(egret.Event.COMPLETE, function () {
- loader.data = httpRequest.response;
- egret.Event.dispatchEvent(loader, egret.Event.COMPLETE);
- }, this);
- httpRequest.addEventListener(egret.IOErrorEvent.IO_ERROR, function () {
- egret.IOErrorEvent.dispatchIOErrorEvent(loader);
- }, this);
- httpRequest.responseType = loader.dataFormat == egret.URLLoaderDataFormat.BINARY ? egret.HttpResponseType.ARRAY_BUFFER : egret.HttpResponseType.TEXT;
- httpRequest.send(request.data);
- };
- NativeNetContext.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;
- var loadedFunc = function () {
- loader.dispatchEventWith(egret.Event.COMPLETE);
- };
- if (__global.setTimeout) {
- __global.setTimeout(loadedFunc, 0);
- }
- else {
- egret.$callAsync(loadedFunc, self);
- }
- }
- function removeListeners() {
- sound.removeEventListener(egret.Event.COMPLETE, onLoadComplete, self);
- sound.removeEventListener(egret.IOErrorEvent.IO_ERROR, onError, self);
- sound.removeEventListener(egret.ProgressEvent.PROGRESS, onPostProgress, self);
- }
- };
- NativeNetContext.prototype.loadTexture = function (loader) {
- var self = this;
- var request = loader._request;
- var virtualUrl = self.getVirtualUrl(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.setAttribute("bitmapSrc", virtualUrl);
- var texture = new egret.Texture();
- texture._setBitmapData(bitmapData);
- loader.data = texture;
- var loadedFunc = function () {
- loader.dispatchEventWith(egret.Event.COMPLETE);
- };
- if (__global.setTimeout) {
- __global.setTimeout(loadedFunc, 0);
- }
- else {
- egret.$callAsync(loadedFunc, 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);
- }
- };
- /**
- * 是否是网络地址
- * @param url
- * @returns {boolean}
- */
- NativeNetContext.prototype.isNetUrl = function (url) {
- return url.indexOf("http://") != -1 || url.indexOf("HTTP://") != -1 || url.indexOf("https://") != -1 || url.indexOf("HTTPS://") != -1;
- };
- /**
- * 获取虚拟url
- * @param url
- * @returns {string}
- */
- NativeNetContext.prototype.getVirtualUrl = function (url) {
- return url;
- };
- NativeNetContext.getNetContext = function () {
- if (NativeNetContext._instance == null) {
- NativeNetContext._instance = new NativeNetContext();
- }
- return NativeNetContext._instance;
- };
- return NativeNetContext;
- }(egret.HashObject));
- NativeNetContext.__use_asyn = egret_native.readFileAsync == null ? false : true;
- native.NativeNetContext = NativeNetContext;
- __reflect(NativeNetContext.prototype, "egret.native.NativeNetContext", ["egret.NetContext"]);
- egret.NetContext = NativeNetContext;
- })(native = egret.native || (egret.native = {}));
- })(egret || (egret = {}));
|