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中已經寫好了一個排行榜。自己可以做修改。