之前在2.X版本我是用designResolution这个可以动态更改的,3.0版本后用的是这个setContentSize,用这个改除了Canvas的都好使,就是Canvas的不变,大佬们3.0咋改Canvas的尺寸啊0.00.0
原先是这样//调整canvas大小适配屏幕
resize_screen() {
var cvs = cc.find(‘Canvas’).getComponent(cc.Canvas);
//保存原始设计分辨率,供屏幕大小变化时使用
if (!this._designResolution) {
this._designResolution = cvs.designResolution
}
var dr = this._designResolution;
var s = cc.view.getFrameSize();
var rw = s.width;
var rh = s.height;
var finalW = rw;
var finalH = rh;
if ((rw / rh) > (dr.width / dr.height)) {
finalH = dr.height;
finalW = finalH * rw / rh;
}
else {
finalW = dr.width;
finalH = rh / rw * finalW;
}
cvs.designResolution = cc.size(finalW, finalH);
cvs.node.width = finalW;
cvs.node.height = finalH;
cvs.node.emit('resize');
}
然后3.0改成了这样
/调整canvas大小适配屏幕
resize_screen() {
var cvs = find(‘Canvas’).getComponent(Canvas);
//保存原始设计分辨率,供屏幕大小变化时使用
if (!this._designResolution) {
this._designResolution = cvs.getComponent(UITransform).contentSize
}
log(this._designResolution);
var dr = this._designResolution;
var s = view.getFrameSize();
log("ssssss", s);
var rw = s.width;
var rh = s.height;
var finalW = rw;
var finalH = rh;
if ((rw / rh) > (dr.width / dr.height)) {
finalH = dr.height;
finalW = finalH * rw / rh;
}
else {
finalW = dr.width;
finalH = rh / rw * finalW;
}
//cvs.getComponent(UITransform).contentSize = size(finalW, finalH);
cvs.getComponent(UITransform).setContentSize(finalW, finalH)
//cvs.node.getComponent(UITransform).width = finalW;
//cvs.node.getComponent(UITransform).height = finalH;
log(find('Canvas').getComponent(Canvas).getComponent(UITransform).contentSize);
log(finalH, "===", finalW)
cvs.node.emit('resize');
}
然后就不好使了

顶 
或者说怎样动态的更改项目的设计分辨率0.0
谢谢大佬view.setDesignResolutionSize(Math.abs(finalW), Math.abs(finalH), 0); 解决了,不过这个方法的最后一个参数是啥0.0
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。