解决方案 »
- UITableView滑动崩溃
- ios平台,开发什么程序,会用到socket API ?
- 小弟刚接触xcode问个关于编译时的bug如何解决
- 手机网页文本框用js的focus无法获取焦点
- 管理从服务器下载的大量图片
- swift网络请求
- 如何获取某个应用运行期间的网络流量情况
- UICollectionView using swift
- 求presidents.plist文件
- 能不能把本地文件写入Document目录下面,然后可以通过iTunes来进行修改
- iPad方向切换视图的尺寸问题
- clash of clans 用手指拖动房子,改变房子的位置,碰到别的房子会变红,可以放置的地方放置下来会变绿,想实现这个效果,没思路,怎么办
要想一个 CCNode 跑一个action,就要对每个CCnode定制特定的action,你在调用的runAction的时候,其实不是在修改CCnode的属性,而是在CCActionManager中注册你的Action,而且每个Action在manager中是惟一的,也只能对一个CCNode服务!所以楼主的调用顺序是:首先你把action1在CCActionManager中注册给对象smallchuck,紧接着,你又把action1注册给了对象bg,然后第一次注册就会失效,他只能为bg对象服务!你最后的解决方案是 [action1 copy],其实就是新建了一个不同内存地址的Action,然后注册给了bg,现在是2个action对应2个对象,当然就好了!
三楼说的会不会内存泄露,我想说的是,你在删除的对象之前,记得[CCnode stopAction:action1]就不会有问题!否则,你的action会一直存在于CCActionManager中,而不会随着对象的消失而消失,会内存泄露!
这位兄弟说得也对,不过“我想说的是,你在删除的对象之前,记得[CCnode stopAction:action1]就不会有问题!否则,你的action会一直存在于CCActionManager中,而不会随着对象的消失而消失,会内存泄露!”这句话其实也不是很对啊,
-(void) removeFromParentAndCleanup:(BOOL)cleanup;
-(void) removeChild: (CCNode*)node cleanup:(BOOL)cleanup;
-(void) removeChildByTag:(NSInteger) tag cleanup:(BOOL)cleanup;
-(void) removeAllChildrenWithCleanup:(BOOL)cleanup;这是CCNODE的删除对象的方法,后面带了一个cleanup参数,如果你将cleanup的值设为YES,系统在删除对象的时候会对自动对当前对象进行stopAllActions的操作的。