godssl Laya.stage.scaleMode无论怎么设, 这两个值都是1..... 我在源码里面console发现计算了两次屏幕的缩放比.... 第二次就有我想要的值了.... 这是为什么呢??
godssl Monica 我用: exactfit 这个模式源码里面没有针对这个模式进行处理, 我看了下, 这个模式应该是走默认的处理流程就好了. 但是奇怪的是为什么明明适配了屏幕 源码也跑到了这里, 但是全局的Laya.stage.clientScaleX/Y的值却没有改变呢? 还是最开始的1
Monica Monica @godssl:当前视窗由缩放模式导致的 X/Y 轴缩放系数,不同缩放模式下也不一样,由始至终得到的都是1的话可能是设置之后又被适配模式给顶掉了。(你现在的目的是什么?要做什么?)
godssl Monica 简单来说我现在只想背景充满整个屏幕, 而内容不拉伸我用exactfit来让舞台填充了整个屏幕了, 但是用这个的话内容会拉伸, 所以我要知道两个方向拉伸了多少 我在加载内容的时候补回去... 如果你有更好的方法也可以.... 在线等哈~~
godssl Monica 另外我追了下源码 恕我眼拙 我发现在core这份js里面是没有改到clientScaleX/Y这两个值的.... 我尝试在源码里面去改 但是失败了.... 看到这个东西是用一个_getset的方法封起身的.... 感觉连框架内部这个属性都是只读的... 如果是这样的话 那么就问题大了....
godssl Monica @Monica:试过了 但是canvas自己本身有底色.... 我用文档上面说的bgColor = null只有浏览器端chrome支持 手机不支持..... canvas本身还是有底色....
godssl Monica @Monica: 其实我追踪过你们的源码.... 在屏幕适配之后第二次计算值(就是上面截图第二个箭头)就是我想要的值... 关键是那次计算我感觉只是做了屏幕适配这个动作, 而没有把一些缩放等一些信息修改过来..... PS: 你可以追下core源码__proto.setScreenSize这个方法.... 因为API里面stage里面是暴露了一个叫ClientScaleX/Y的属性的(只读) 我希望这个属性能发挥它本来应该有的效果 ..... 而已....
godssl Monica @Monica: 然后讨论回你提案的方法... 这个我之前也试过了.... 但是我现在设置了强制竖屏, 如果我度屏幕的宽高会互换... 这样我计算的比例的算法就复杂了... 虽然我也不是不能写出来.... 但是这个东西我怎么想都是框架应该提供的, 比如Unity3D就有提供世界坐标的形变信息.... 而你们设计当初也留了这个接口... 我想应该是交由你们来处理比较好~~~
godssl Monica 我的这个情况我查了下 是改变了canvas标签的 transform: matrix(0, -0.5, 0.560504, 0, 0, 375) 而且我觉得无论改canvas或者stage都好... 他们拉伸的比例也是可以计算的吧.... 这个比例也是可以公开的吧..... 接口的公布和功能实现的方式我感觉是两回事吧... 你说呢?
godssl Monica @Monica: 其实这个问题我解决了.... 现在是我自己算拉伸比.... 只不过我觉得作为一个成熟的游戏框架.... 无论2维空间或者3维空间的形变应该是要告诉使用者的吧.... 就从产品上来说这个问题 我觉得加这个接口也是合理的..... 问题一定可以解决... 我就是你们能好起来... 毕竟我在你们身上下注了啊~~