Laya.timer.once(4000,this,function(){
console.log(Browser.window.sharedCanvas)
var rankTexture=new Texture(Browser.window.sharedCanvas);
rankTexture.bitmap.alwaysChange=true;
console.log(rankTexture)
LayaUISample.scoreview.graphics.drawTexture(rankTexture,5,78,rankTexture.width,rankTexture.height);
});
var rankTexture=new Texture(Browser.window.sharedCanvas);
这里报错
VM13215:1 gameThirdScriptError
bitmap._addReference is not a function
TypeError: bitmap._addReference is not a function
14 个回复
186*****260
赞同来自: Rickshao 、qq771472501 、YIF
Rickshao
赞同来自: qq771472501 、itachi1d 、YIF
有一个window,在开放数据域里是拿不到的,所以单独用一个工程去做开放数据域的话,如何导出呢?
186*****260
赞同来自: Rickshao 、qq771472501
console.log(Browser.window.sharedCanvas)
var rankTexture=new Texture(Browser.window.sharedCanvas);
rankTexture.bitmap.alwaysChange=true;
console.log(rankTexture)
LayaUISample.scoreview.graphics.drawTexture(rankTexture,5,78,rankTexture.width,rankTexture.height);
});
var rankTexture=new Texture(Browser.window.sharedCanvas);
这里报错
VM13215:1 gameThirdScriptError
bitmap._addReference is not a function
TypeError: bitmap._addReference is not a function
Laya_XS
赞同来自: 懒懒 、十字寒鸦
https://mp.weixin.qq.com/debug/wxagame/dev/tutorial/open-ability/open-data.html
在LayaAir引擎里也支持微信小游戏关系链的使用,具体使用方式在官方提供的适配库里也给出了接口初始化说明,
MiniApdter.init的第二个参数设置成true,就是是否把当前环境初始化为开发数据域(适配库里写的是子域,概念是同一个)。
根据微信文档的说明,主域跟开发数据域代码是分离的,也就是说他们代码之间不能互相调用,具体更多限制请认真阅读文章,现在改成在具体的使用说明:
主域:
MiniApdter.init(true)
Laya.init(1280,720,WebGL);
//通过消息透传通知开发数据域sharedCanvas的尺寸大小,以及缩放比例信息
wx.getOpenDataContext({url:"",data:{type:"resizeShared",width:Laya.stage.width,height:Laya.stage.height,matrix:Laya.stage._canvasTransform},isLoad:false});
//显示开发数据的内容,需要延迟处理,因为主域跟开发数据域同时初始化,可能碰巧赶上主域先调用,开发数据域或调用,导致内容不显示
Laya.timer.once(400,this,function():void{
var rankTexture:Texture = new Texture(Browser.window.sharedCanvas);
rankTexture.bitmap.alwaysChange = true;//小游戏使用,非常费,每帧刷新
rankSprite2.graphics.drawTexture(rankTexture,5,78,rankTexture.width,rankTexture.height);
});
开发数据域:
MiniAdpter.init(true,true);
Laya.init(1280,720);//标注:开发数据域不支持webgl模式,只能运行canvas模式,微信小游戏限制
__JS__('wx').onMessage(function(message:Object):void{
//通过接收主域的消息来设置开发数据域的画布大小跟矩阵信息
__JS__('sharedCanvas').width = message.data.width;
__JS__('sharedCanvas').height = message.data.height;
trace("-----------------sharedresize----------------------------");
trace(message.data.matrix);
Laya.stage._canvasTransform = message.data.matrix;//重新设置矩阵
});
//开发数据域添加一张图片
var image:Image = new Image();
image.skin = "a.png";
Laya.stage.addChild(image);
以上是基本用法,具体开发数据域的限制请参考官方的文档,这里只列出了具体的使用说明
lvming1983
赞同来自:
185*****367
赞同来自:
Laya_XS
赞同来自:
andydufresne
赞同来自:
开放数据域的话,其实就不要用框架了,直接对canvas进行操作吧,不然可能代码体积太大了
Laya_XS
赞同来自:
haseef520s
赞同来自:
bitmap._addReference is not a function;at setTimeout callback function
TypeError: bitmap._addReference is not a function
直接复制你代码报这个错 难道你的不报?
Laya_XS
赞同来自:
if(bitmap&& bitmap._addReference)
bitmap._addReference();
下个版本修复这个bug
https://ask.layabox.com/question/13181这里是最详细的地址
沧海一粟
赞同来自:
水木清澄
赞同来自:
小仙男
赞同来自: