1. 程式人生 > >Egret微信小遊戲好友排行榜教程

Egret微信小遊戲好友排行榜教程

https://mp.weixin.qq.com/s/kYIdnHv-C5KuR9snekPNBg

https://mp.weixin.qq.com/s/PA2sfcGxNfix7sJ8ysy9AA

官方文件。

https://www.jianshu.com/p/600543c4be42 

比較可以的一個文章。

步驟:

1.在platform中新增一個變數。opendatacontext,是一個自己封裝的類的例項

2.自己類中

封裝一個方法。

 createDisplayObject(type, width, height) :egret.Bitmap{
        let sharedCanvas = window["sharedCanvas"] as any;//可以理解為得到wx的sharedCanvas,作為Bitmap,然後在新增到自己的舞臺上
        const bitmapdata = new egret.BitmapData(sharedCanvas);
        bitmapdata.$deleteSource = false;
        const texture = new egret.Texture();
        texture._setBitmapData(bitmapdata);
        const bitmap = new egret.Bitmap(texture);//得到Bitmap
        bitmap.width = width;
        bitmap.height = height;

        if (egret.Capabilities.renderMode == "webgl") {
            const renderContext = (egret as any).wxgame.WebGLRenderContext.getInstance();
            const context = renderContext.context;
            ////需要用到最新的微信版本
            ////呼叫其介面WebGLRenderingContext.wxBindCanvasTexture(number texture, Canvas canvas)
            ////如果沒有該介面,會進行如下處理,保證畫面渲染正確,但會佔用記憶體。
            if (!context.wxBindCanvasTexture) {
                egret.startTick((timeStarmp) => {
                    egret.WebGLUtils.deleteWebGLTexture(bitmapdata.webGLTexture);
                    bitmapdata.webGLTexture = null;
                    return false;
                }, this);
            }
        }
        return bitmap;
    }
 

3.把開放域理解為一個節點。在需要的地方新增它就可以。例如:this.addChild(開放域).

新增進來之後需要向子域發訊息。

//顯示開放域資料     

this.bitmap = plathform.openDataContext.createDisplayObject(null,                       this.stage.stageWidth, this.stage.stageHeight);//這裡建立的就是整個開放域介面的大小,最好與開放域所獲得的寬高一致,也可以從主域傳入到子域。兩邊最好保持一致

this.addChild(this.bitmap);

           //主域向子域傳送資料

           plathform.openDataContext.postMessage({

               isRanking: this.isRankClick,

               text: "egret",

               year: (new Date()).getFullYear(),

               command: "open"

           });

4.egret在opendata檔案下的index.js中已經寫好了一個排行榜。自己可以做修改。