Skyline渲染引擎
试了下skyline的手势系统,使用非常丝滑,一般现在有的使用canvas的教程都只是在固定屏幕中实现了固定画布大小,然后各种涂鸦,想着是否可以通过两者来实现画布可缩放的画板。如下所示,已经实现了画板功能和缩放功能,但是卡在了如何双指缩放,单指移动放大后的画布,与单指绘制之间的冲突中了,有大佬有实现的思路吗?
view{ overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; } [图片]
app.json,配置weui,方式: "useExtendedLib": { "weui": true } 同时app.json中配置 "renderer": "skyline", 在真机调试时,weui的导航及tabbar都不能显示,并且样式错乱; 去掉"renderer": "skyline",再真机调试就能正常显示,请问这种配置方式是不兼容嘛,还是说哪个地方写的可能有问题,所以样式错乱,而且组件也不显示?
[图片] [图片]
iOS 正常,Android 和开发者工具异常。 page { --Color: #E5E5EA; } .foo { animation: 1.5s infinite bar; } @keyframes bar { from { background: var(--Color); } to { background: var(--Color); } }
.parentTitle::before { content: \2190; margin-right: 8px; } [图片]
使用了skyline来渲染video组件,然后打包成多端项目到安卓运行,播放视频是可以播放的,但是点击全屏按钮没反应
小程序是 skyline ,webview 没验证。 当 ad-custom 组件加载的是视频时,会收到 recursive update detected... 的警告,然后如果页面停留就了,设备就会发烫。 如果 ad-custom 组件配置成图片时,就没有这个问题。
在项目中想创建一个用于控制范围的流畅的双向slider组件,于是想利用horizontal-drag-gesture-handler手势组件来实现并封装成组件。在手势触发的'worklet'函数的最后使用wx.worklet.runOnJS来调用对应的方法修改数据。 onMaxDrag(e) { "worklet"; const { deltaX } = e; const deltaN = (deltaX / this._lineWidth.value) * (this._max.value - this._min.value); this._curMax.value += deltaN; if (this._curMax.value > this._max.value) this._curMax.value = this._max.value; if (this._curMax.value < this._curMin.value) this._curMax.value = this._curMin.value; runOnJS(this.setMaxNum)(this._curMax.value); }, setMaxNum(val) { console.log("--- 组件中 setMaxNum 中的this ---", this); this.setData({ curMaxNum: val }); }, 直接写在页面中能够得到预期结果,但是封装成组件却不能 实际场景如下图中,上方拖动条是在100-10000中选取范围(组件内),拖动两端小球UI能正常流畅变化,但是底部数值并未跟随变化。下方大球为写在页面中,拖动后能实时显示拖动距离。 [图片] 通过对比之后发现,写在页面中this指向正常,但写在组件this指向变为{},导致无法进行数据修改的操作。 [图片] 请问是runOnJS等等相关的worklet方法只能在页面中直接使用么?还是说我的使用方法存在问题?请大佬们解答一下
[图片]从IDE里头能看到这个紫色的地方一直闪,而这个[object object]的数据,压根不是我赋值的,根本就没有这些[图片] 是咋回事?
莫名其妙的坑,浪费好多时间!!!!首先是wx:for-items不循环的问题,换wx:for才解决。 然后是WXS处理touch事件,可以调用,但没有给参数,换web一点问题没有,唉~~~~ <wxs module="move" > module.exports = { touchStart: function(e, ins) { console.log('touchStart',e,ins) //这里e和ins 全是undefined } } </wxs> <view class="aset" catchtouchstart="{{move.touchStart}}" > </view>
skyline引擎下,用boundingClientRect获取不到span下text的rect中与offset相关的信息。这是一个诡异的问题,如果用代码片段模式,会发现是能获取到。一到正式工程,就获取不到了,所以不要在代码片段模式里面复现。复现步骤如下: 用js-skyline基础模板创建一个项目。将以下代码复制到项目首页。// index.wxml <view style="height: 200px;"></view> <span id="span"> <text id="text">text</text> </span> // index.js Component({ lifetimes: { ready() { this.createSelectorQuery().select(`#text`) .boundingClientRect((rect) => { if (rect) { console.log(`text rect:${JSON.stringify(rect)}`) } }) .exec(); } } }) 3.开发者工具控制台或真机环境都会输出如下结果,所有offset的相关信息是0 text rect:{"id":"text","dataset":{},"left":0,"top":0,"right":0,"bottom":0,"width":0,"height":0} 4.如果以代码片段运行,会得到正确结果: text rect:{"id":"text","dataset":{},"left":0,"right":29.109375,"top":200,"bottom":221,"width":29.109375,"height":21}
开发者工具正常: [图片] iOS 和 Android 真机异常: [图片]
使用snapshot 生成图片后,调用wx.previewImage 查看正常 [图片],长按保存到相册后 就变成黑色的了[图片],只有边框。
Skyline模式 [图片] webview模式 [图片]
scroll-view在windows上无法滑动,video 在移动设备上全屏后没有返回按钮,取消全屏后变横屏,有适配计划吗
两部iphone13出现小程序用着用着划不动了,按钮点击没反应,只能上下划。测试出现后调试台点击也没反应
我的 Skyline 小程序按文档优化后总启动耗时还是很长: [图片] 性能相关配置: [图片] 无全局组件。全局开启了 Skyline 模式,并且所有页面都是 Skyline 。包体积已经优化:[图片] [图片] 另外,首页 onLoad 只有一个接口,而且为匿名用户加了缓存。 请 Skyline 官方帮看看,冷启动优化方面还有什么可以优化的地方?
https://developers.weixin.qq.com/s/qN9CZ6mS7BTf 开发者工具会展示自定义tabbar, 真机预览不展示
[图片] [图片]
小程序示例
交互动画 tab
skyline 下不支持 line-clamp,可以使用 text 组件的 max-lines 结合 overflow 属性使用。
[图片]
https://developers.weixin.qq.com/miniprogram/dev/component/text.html