妈蛋,我发现 SpriteFrame.setTexture 在原生平台上会内存泄露

原生平台上,你们用 setTexture 做帧动画的要检查下了,这张贴图会有可能释放不掉。

看这标题我还以为又是来骂creator的呢:sweat_smile:

用createWithSpriteFrames创建动画会有这个问题吗?

不会,用 cc.Animation 做的没事~~ 我指的是自己手动实现的动画

哦,那就好,我害怕createWithSpriteFrames内部调用了setTexture

请问@jare 怎么用会出问题? 可以贴一下泄露代码吗?

https://github.com/cocos-creator/engine/blob/69bc927d90b7fda2d85f9ef7a3ba5090711c3e34/jsb/jsb-tex-sprite-frame.js#L261
这里调用了 initWithTexture,这是 -x 里的保护接口,只能在构造函数里调用。结果这里在 js 层多次调用了,多次调用会导致旧的贴图释放不掉。

1赞

谢谢 @jare

所有版本都会有这个问题?

最近的版本都会