生成一个Button类型的节点,当动态加载图片改变normalSprite,pressedSprite,hoverSprite后
在Web环境下运行良好,
在原生环境下,当鼠标悬停在按钮上,或者点击按钮时都会报错,并且不改变pressed和hover状态的图片
请开发组尽快解决,谢谢!
你这样开发人员是没法帮你解决的,你需要详细描述你的操作,并且贴出错误代码,最好是有重现问题的简单demo,这样开发人员才知道问题出在哪里
你需要把你报错的信息贴出来,我们才能知道是哪里出了问题。
Simulator : jsb ERROR: File …\auto\jsb_cocos2dx_auto.cpp: Line: 13359, Function: js_cocos2dx_SpriteFrame_getTexture
20
Simulator : js_cocos2dx_SpriteFrame_getTexture : Invalid Native Object
20
Simulator : C:/Users/SEELE/AppData/Local/CocosCreator/app-1.1.1/resources/cocos2d-x/simulator/win32//src/jsb_polyfill.js:27871:Error: js_cocos2dx_SpriteFrame_getTexture : Invalid Native Object
20
Simulator : ScriptingCore::callFunctionName error:__errorHandler wasn’t found!
正在demo,一会发上来
OK,我测试看看,待会给你答复
web版没问题,原生版有问题
好的,谢谢
不客气,等一下看看Knox大神怎么说
你可以先用神盾局的方法做,不过这个应该也算 bug ,按道理 JSB 不会报错才对。会尽快找出原因并解决。
你用的creator是哪个版本的,我的1.11版按你的改完了,什么都显示不出来了
你把你代码截图来看看
我看到了你的是1.1.2,我升个版试试
我贴的代码和版本没有关系,1.1.0以后都可以用的,有可能是你的代码哪里有问题
是我的问题,把spriteFrame当Texture用了,直接复制了。现在没问题了,谢谢
嗯,不客气的
导致报错的原因:
如果使用 new SpriteFrame 后 JSB 会在创建后自动释放 new 出来的对象。所以导致 button 在使用的时候,该 spriteFrame 已经为 null 了,如果想要保留的话需要在创建以后调用 retain(); 保留对象。
例如:
buttonCom.normalSprite = new cc.SpriteFrame(texture) buttonCom.normalSprite.retain();
好的,知道了


