webGL的Canvas绘制SharedCanvas的内容

最近在用Creator做微信小游戏,要把开放数据域里的SharedCanvas的内容绘制到主域的上屏Canvas,我的主域模式是用的webGL,如果用webGL原生的API太繁琐,Creator有没有什么简单的方法可以在webGL的Canvas绘制SharedCanvas的内容?

终于把微信小游戏,开放数据域的shareCanvas的内容放到了Sprite上,直接上代码,被困扰的同学们拿走::grin:

    var openDataContext = wx.getOpenDataContext();
    var sharedCanvas = openDataContext.canvas;
    sharedCanvas.width  = 512;
    sharedCanvas.height = 1024;

    //发送消息通知开放数据域,生成sharedCanvas
    openDataContext.postMessage({
        method:'showGroupRank',
        pageIndex: 1
    });

    var main = function () {
        var texture = new cc.Texture2D();
        texture.initWithElement(sharedCanvas);
        texture.handleLoadedTexture();

        this.rankSprite.spriteFrame = new cc.SpriteFrame(texture);
    };


    ty.Timer.setTimer(this, main, 1/60);
1赞

您好,请问这段代码是写在什么文件里的?

之前有试过这种,将scanvas绘在了sprite上面,但是canvas被渲染成了texture2D, canvas上面的touch事件还可以用么?

如果想清除或者返回,该怎么做呢

就写在普通场景里的

就是在普通场景里,把一个Sprite用动态的纹理进行初始化了,如果想清除,你直接停止绘制,删除这个Sprite,返回其它场景就行了

我没试过事件

我看你传参里有个pageIndex,也就是说可能会分页,或者说一屏展示不完,需要上下滑动展示,这个要怎么实现

显示是透明的是因为没有数据的原因么?

index.js文件方便共享一下吗,或者 showGroupRank这个函数

我们的需求是只展示前几十名,不是全部,这个pageIndex是之前测试写的,我现在的作法是把几十名,都绘制到SharedCanvas上,直接输出到上屏Canvas里,用一个滚动控件实现滚动。

showGroupRank,这个方法是绘制排行榜的,里面的逻辑比较简单,就是2d模式下,调用html5的API进行绘制,所以我没写,因为不太具有参考价值

你检查一下你的SharedCanvas上有没有绘制成功吧。

请问你showGroupRank绘制排行榜就是在SharedCanvas上循环绘制文字吗, 有没有可能像在编辑器里使用节点一样的去布局SharedCanvas呢

为什么我的是黑屏…

我和你一样把sharedCanvas渲染到sprite上,但是排行榜列表的长度在主域怎么样获取到呢?

同求排行榜长度 哪怕是有不透明像素的长度也可以

你好 我照着你的方法写 还是没绘制出来 方便给案列么

你好,请问一下怎么获取列表长度,或者怎么实现,滚动