1、有些东西在VS上和打包到手机上是不一样的,会出现一些莫名其妙的错误
比如说初始化的问题,cocos2d-x的初始化需要一些时间,如果代码写的过于靠前(直接在.cpp中写个全局方法调用cocos2d-x内部某些方法),则可能此方法执行不到,举个我遇到的两个例子:
(1)有时候方法本身没有错,但是执行的时候可能达不到函数本身的效果
在构造函数中直接调用问题:
DataCenter::DataCenter(void)
{
CCNotificationCenter::sharedNotificationCenter()->postNotification("disvisible",(CCObject *)1);
}
上面的方法本身没有一点错误,但是如果调用的过早(比cocos2d-x的初始化还早),就会出现错误,我当时是进入了死循环。此时,我们需要调整一下代码执行位置(靠后执行些),也许问题就解决了~
(2)下面的代码很简单——清空CCUserDefault用户数据
- CCUserDefault::purgeSharedUserDefault();
- //清除临时文件
- remove(CCUserDefault::getXMLFilePath().c_str());
我有次写到了init()函数的最上边结果,用户数据没有清空,我搞了半天,不明白原因,后来放到了init()函数靠后一些的位置,就没问题了~
(3)CCTableView打包到安卓手机上的问题
类的继承:
class NotEnough : public CCLayer,public CCTableViewDataSource,public CCTableViewDelegate
在VS下可以执行到,但在安卓手机上无法执行的几个方法:
virtual void scrollViewDidScroll(CCScrollView* view) ;
virtual void scrollViewDidZoom(CCScrollView* view){};
virtual void tableCellHighlight(CCTableView* table,CCTableViewCell* cell);
virtual void tableCellUnhighlight(CCTableView* table, CCTableViewCell* cell);
不知道为什么在手机上无法之行到这几个函数,如果您知道为什么还希望能告知下,谢谢!