Egret HTTP網路

來源:互聯網
上載者:User

標籤:

HTTP 要求與響應:

    private createGameScene():void {        //HTTP 1.0        var request = new egret.HttpRequest();        request.responseType = egret.HttpResponseType.TEXT;  //請求位元據則用 HttpResponse.ARRAY_BUFFER        //http 測試伺服器 + Get 方式        request.open("http://httpbin.org/post",egret.HttpMethod.POST);      // get 方法:request.open("http://httpbin.org/get",egret.HttpMethod.GET);        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");        request.send();      //如果是帶有參數的請求:get - url + ? + key1=value1&key2=value2; post - send(key1=value1&key2=value2);        request.addEventListener(egret.Event.COMPLETE, this.onGetComplete, this);        request.addEventListener(egret.IOErrorEvent.IO_ERROR, this.onGetIOError, this);        request.addEventListener(egret.ProgressEvent.PROGRESS, this.onGetProgress, this);        }    private onGetComplete(event:egret.Event):void {        var request = <egret.HttpRequest>event.currentTarget;        console.log("get data : ",request.response);        var responseLabel = new egret.TextField();        responseLabel.size = 18;        responseLabel.text = "GET response: \n" + request.response.substring(0, 50) + "...";        this.addChild(responseLabel);        responseLabel.x = 50;        responseLabel.y = 70;    }    private onGetIOError(event:egret.IOErrorEvent):void {        console.log("get error : " + event);    }    private onGetProgress(event:egret.ProgressEvent):void {        console.log("get progress : " + Math.floor(100*event.bytesLoaded/event.bytesTotal) + "%");    }

 

跨域載入位元影像:

  在本地搭建了一個 IIS 網站用來當資來源站點。

    private createGameScene():void {        var imgLoader:egret.ImageLoader = new egret.ImageLoader();        imgLoader.once(egret.Event.COMPLETE, this.imgLoadHandler, this);        imgLoader.load("http://127.0.0.1/hero1.png");       }    private imgLoadHandler(evt:egret.Event):void    {        var Loader:egret.ImageLoader = evt.currentTarget;        var bmData:egret.BitmapData = Loader.data;  //應該預設是以位元據來傳輸        var bMap:egret.Bitmap = new egret.Bitmap(bmData);        this.addChild(bMap);    }

  但是在 WebGL 運行 createTexture 時報錯,egret 教程上也說暫時不支援 WebGL?

 

跨域負載檔案:

    private createGameScene():void {        //代碼與普通請求完全相同        var url = "http://127.0.0.1/test.txt";  //IIS的MIME不支援教程的 json 格式,改成 txt 後瀏覽器才可訪問,但js仍不可訪問        var request:egret.HttpRequest = new egret.HttpRequest();        request.once(egret.Event.COMPLETE, this.resLoadHandler, this);        request.once(egret.IOErrorEvent.IO_ERROR, this.resLoadHandler, this);        request.once(egret.ProgressEvent.PROGRESS, this.progressLoadHandler, this);        request.open(url, egret.HttpMethod.GET);        request.send();     //js 的跨域問題..    }    private resLoadHandler(evt:egret.Event):void{        switch(evt.type){            case egret.Event.COMPLETE:                var request:egret.HttpRequest = evt.currentTarget;                console.log("resLoadHandler: ", request.response);                break;            case egret.IOErrorEvent.IO_ERROR:                console.log("resLoadHandler io error.");                break;        }    }    private progressLoadHandler( evt:egret.ProgressEvent):void{        console.log("progress:", + Math.floor(100 * evt.bytesLoaded / evt.bytesTotal) + "%");    }

  這裡沒有指定 ResponseType,等搞定了跨域問題要回來驗證一下。

Egret HTTP網路

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.