我这边尝试了一下,并没有出现你说的裁剪问题。
我用的1.2 你什么版本
没错, 1.2 版本。我不太清楚你遇到的问题,我说下范例的做法吧,你可以打开范例看看。

Canvas 设计分辨率是图中的紫色框,然后背景图是图中蓝色边框。可以看到背景图在水平方向大过了设计分辨率。为了方便查看,我在右侧背景上放了一个长条 Sprite。
然后 Canvas 设置成 Fit Height 模式,也就是说高度和屏幕高度对齐,水平有可能发生裁剪也有可能黑边。
但是由于背景图的存在,当屏幕在水平方向上过宽时,原先的黑边会被显示为背景:(注意图中的右侧长条 Sprite)
(左边按钮是自适应的,请忽略)
我在1.2主要做了以下这三个配置,用手机浏览器看的/build,启动浏览器发现大背景图被压缩到canvas区域,canvas区域外为黑边。

onLoad: function () {
cc.view.setOrientation(cc.macro.ORIENTATION_LANDSCAPE);
}

Fit Width 和 Fit Height 都勾选的情况下,是 SHOW_ALL 模式,的确会有黑边
怎么破
这算bug吧
如果是请尽快修复
这是设计如此,因为如果不剪裁黑边的话,不止你的背景可以看到,你的其他游戏元素也可以在设计分辨率外被看到,这可能导致一些用户不希望的现象发生
根据你的需求,目前我们讨论的解决方案是:
在 Canvas 组件里当同时勾选 Fit Width 和 Fit Height 选项时,增加一个 「是否剪裁设计分辨率以外区域」的选项,取消勾选这一项就能够显示背景和其他元素了。不过这种情况下要自己处理原来黑边可以遮挡地带的穿帮问题。
哇,听起来好开心呦,帅锅,什么版本实现
我的做法是 加宽背景
这就是我要找的啊!什么时候实现!!
也可以做一个“视口遮罩”之类的控件,让用户自由选择什么可见,什么不可见。
或者在view里加入一个setBG方法就好了。
请在roadmap里加入这个功能。
现在有什么临时方案吗?
引擎大大们, 这个方案实现了么?听上去像是我们做屏幕适配的福音啊
var canvas = this.targetCanvas
var designResolution = canvas.designResolution
var viewSize = cc.view.getFrameSize()
console.log("winsize", viewSize.width, viewSize.height)
console.log("designResolution", designResolution.width, designResolution.height)
console.log("canvas", canvas, canvas.fitWidth, canvas.fitHeight)
if (viewSize.width/viewSize.height > designResolution.width/designResolution.height)
{
canvas.fitHeight = true
}
else{
canvas.fitWidth = true
}
我通过在代码中根据当前屏幕的宽高比,手动设置canvas fitWidth 或 canvas fitHeight 似乎可以解决这个问题,不知道引擎大大怎么看?这样是否有问题?以前在cocos2dx中一直是这样弄的
当canvas 的fitwidth 和 fitheight 同时为true的时候,超过设计分辨率的部分会被裁剪,但是当只选其中一个的时候,是不会裁剪的,所以动态设置就可以了?
没人理我
自己顶一个
请问你这个适配 ScrollView的是直接在Canvas上加一个大的背景图解决黑边问题,然后ScrollView不变吗?怎么处理的呢?
readed
