再上传一张安卓闪退的图
能找到重现的方法么,可以的话,给我一个demo,我测测看,或者加我QQ 1053210246
我项目里面有使用evalString,因为在IOS v8之前的版本都是没有问题, 升到V8后,就一定会crash,所以我才去测试一下examplecase里面的,发现也是一样,这里面应该是有问题的。ios调用objectivc-c没问题,但object-c调用evalString就会crash
你看下,这个在2.1.3是好的。
性能方面,我没感觉到 2.2. 和 2.1.3有啥区别啊? 怎么感觉微信端2.2 更卡啦? 加载资源直接出现黑屏,在2.1.3.没有这种情况出现。
背景播放 都经常出现异常。
这些都是微信平台的表现出来的。
所有这些在 模拟器/web浏览器运行是好的,但是就是微信平台出现问题。 (2.2RC版本)
PageView 我用的是这个代码。这个在2.1.3是好的
cc.Class({
extends: cc.PageView,//cc.Component,
properties: {
},
// LIFE-CYCLE CALLBACKS:
// onLoad () {},
start () {
},
onEnable() {
this._super();
this.node.on("scrolling", this._onScrollingDrawCallOpt, this);
},
onDisable() {
this._super();
this.node.off("scrolling", this._onScrollingDrawCallOpt, this);
},
_onScrollingDrawCallOpt() {
if (this.content.childrenCount == 0) {
return;
}
this.optDc();
},
optDc()
{
let node = this.node;
let pos = cc.v2(
node.x - node.anchorX * node.width,
node.y - node.anchorY * node.height);
let svLeftBottomPoint = node.parent.convertToWorldSpaceAR(pos);
let svBBoxRect = cc.rect(
svLeftBottomPoint.x,
svLeftBottomPoint.y,
this.node.width, this.node.height);
this.content.children.forEach((childNode) => {
//如果相交了, 那么就显示,否则就隐藏
let childNodeBBox = childNode.getBoundingBoxToWorld();
if (childNodeBBox.intersects(svBBoxRect)) {
childNode.opacity = 255;
}
else{
childNode.opacity = 0;
}
});
}
});
// ScrollViewPlus.js
const { ccclass, property } = cc._decorator;
/**
* @classdesc 只渲染可视区域的ScrollView
* @author caizhitao
* @version 0.1.0
* @since 2019-07-12
* @description
*
* 用法:
*
* 1. 将本组件挂载在节点上即可,和正常ScrollView使用一致
*
* 原理:
*
* 1. 滚动时,判断子节点是否进入了/离开了可视区域
* 2. 根据结果回调对应事件,在可以实现类似以下功能:
* * 控制可视区域Item显示(透明度改为 255 ),非可视区域Item隐藏(透明度改为 0 )
*/
@ccclass
export default class ScrollViewPlus extends cc.ScrollView {
@property({
tooltip: "是否计算在可视区域中Item的相对位置(可能会相对耗性能)"
})
caculatePosition: boolean = false;
onEnable() {
super.onEnable();
this.node.on("scrolling", this._onScrollingDrawCallOpt, this);
}
onDisable() {
super.onDisable();
this.node.off("scrolling", this._onScrollingDrawCallOpt, this);
}
private _onScrollingDrawCallOpt() {
if (this.content.childrenCount == 0) {
return;
}
this.optDc();
}
public optDc() {
ScrollViewPlus.optDc(this, this.caculatePosition);
}
/**
* 优化 ScrollView Content 节点 DC,可以手动调用
*
* 具体为
*
* 1. 进入ScrollView可视区域是,回调对应 Content 子节点上挂载的 ScollViewPlusItem 组件的 onEnterScorllViewEvents 数组事件
* 2. 退出ScrollView可视区域是,回调对应 Content 子节点上挂载的 ScollViewPlusItem 组件的 onExitScorllViewEvents 数组事件
*/
public static optDc(scrollView: cc.ScrollView, caculatePosition: boolean) {
// 获取 ScrollView Node 的左下角坐标在世界坐标系中的坐标
let svLeftBottomPoint: cc.Vec2 = scrollView.node.parent.convertToWorldSpaceAR(
cc.v2(
scrollView.node.x - scrollView.node.anchorX * scrollView.node.width,
scrollView.node.y - scrollView.node.anchorY * scrollView.node.height
)
);
// 求出 ScrollView 可视区域在世界坐标系中的矩形(碰撞盒)
let svBBoxRect: cc.Rect = cc.rect(svLeftBottomPoint.x, svLeftBottomPoint.y, scrollView.node.width, scrollView.node.height);
// 遍历 ScrollView Content 内容节点的子节点,对每个子节点的包围盒做和 ScrollView 可视区域包围盒做碰撞判断
scrollView.content.children.forEach((childNode: cc.Node) => {
//如果相交了, 那么就显示,否则就隐藏
let childNodeBBox = childNode.getBoundingBoxToWorld();
if (childNodeBBox.intersects(svBBoxRect)) {
childNode.opacity = 255;
}
else{
childNode.opacity = 0;
}
});
}
}
就是加啦一个optDc 优化
谢谢反馈,我们会跟进服务面板的问题
嗯,examples 是在 UIKit 的控件调用的。你是在什么情况下用的呢?
并没有使用任何第三方插件,项目比较杂,不太好提供demo,主要是现在不能定位到问题出在哪
进入游戏后发送IOS商品列表请求, IOS返回后就调用evalString把结果传回去,异步的
你好,2.2 有些用户反馈 scrollview/pageview 会变卡,这个我们还在进一步核查中。性能方面只有原生有提升,其它平台应该变化不大。你反馈的其它 bug,能够提供一下更详细的说明吗?比如经常出现异常是什么异常?log 是什么?能给个 demo 吗?
我看报错和中间件有关系,看是不是某个spine报错了,2.2升级了spine,有可能出现解析错误,你用visual studio打开win32工程,这样可以看到报错堆栈,实在不行就加我QQ1053210246,打个default工程给我,我帮你看看。
第三个问题,是加载什么资源,有没有报错
是的,我也是在怀疑和spine有关,游戏中确实用到了大量的spine,已经加你QQ了
试过用vm虚拟机黑苹果的就会这样。还有Mali 4.3.0 etc压缩工具,已经验证过了,在macOs Mojava上,压缩纹理的透明度处理会有问题。只跟系统有关,同一张图输出的md5不一致,最好回退到上一个macOs大版本
扩展插件吗,确实用到了,CreatorHelp之类的
能给我看一下你插件的 package.json 的配置吗?
可以的,但是现在电脑不在身边,晚上回去再弄
好的感谢


