修复spine节点在IOS上无法获取节点大小的问题(浏览器可以正常获取) #273
https://github.com/cocos-creator-packages/jsb-adapter/pull/273/files
上面是2.4.0的修复方法
实测发现修复并不完全,当第一次load的时候是没问题的,如果第二次再调用load 这个时候就会使用之前的缓存了
let skeletonCache = spine.retainSkeletonData(uuid); if (skeletonCache) { this._skeletonCache = skeletonCache; return; }
从这里就返回了,而这个时候this.width和this.height其实还是没有值的,需要改成
let skeletonCache = spine.retainSkeletonData(uuid); if (skeletonCache) { this.width = skeletonCache.getWidth(); this.height = skeletonCache.getHeight(); this._skeletonCache = skeletonCache; return; }
这样就能保证一直都有值了
if (this._skeletonCache) return;
最上面这行其实也可以改一下,不过暂时没发现什么情况会走到这里