Skip to content

Commit a696415

Browse files
committed
CCActionCallFunc set target node to weak, Setup scheduler in CCAnimationManager only if added to a node (onEnter)
1 parent 8d45697 commit a696415

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

cocos2d-ui/CCBReader/CCAnimationManager.m

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,6 @@ - (id)init {
5252
_nodeSequences = [[NSMutableDictionary alloc] init];
5353
_baseValues = [[NSMutableDictionary alloc] init];
5454

55-
// Scheduler
56-
_scheduler = [[CCDirector sharedDirector] scheduler];
57-
[_scheduler scheduleTarget:self];
58-
[_scheduler setPaused:NO target:self];
59-
6055
// Current Sequence Actions
6156
_currentActions = [[NSMutableArray alloc] init];
6257
_playbackSpeed = 1.0f;
@@ -81,6 +76,13 @@ - (CGSize)containerSize:(CCNode*)node {
8176
}
8277
}
8378

79+
-(void) onEnter {
80+
// Setup Scheduler
81+
_scheduler = [[CCDirector sharedDirector] scheduler];
82+
[_scheduler scheduleTarget:self];
83+
[_scheduler setPaused:NO target:self];
84+
}
85+
8486
- (void)addNode:(CCNode*)node andSequences:(NSDictionary*)seq
8587
{
8688
#ifdef DEBUG

cocos2d/CCActionInstant.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,12 +184,12 @@
184184
* This action allows a custom function to be called.
185185
*/
186186
@interface CCActionCallFunc : CCActionInstant <NSCopying> {
187-
id _targetCallback;
187+
__weak id _targetCallback;
188188
SEL _selector;
189189
}
190190

191191
/** Target function that will be called. */
192-
@property (nonatomic, readwrite, strong) id targetCallback;
192+
@property (nonatomic, readwrite, weak) id targetCallback;
193193

194194

195195
/// -----------------------------------------------------------------------

cocos2d/CCNode.m

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,10 @@ -(void) onEnter
11081108
[[CCDirector sharedDirector].actionManager migrateActions:self from:[CCDirector sharedDirector].actionManagerFixed];
11091109
[self setActionManager:[CCDirector sharedDirector].actionManager];
11101110
}
1111+
1112+
if(_animationManager) {
1113+
[_animationManager performSelector:@selector(onEnter)];
1114+
}
11111115

11121116
[self wasRunning:wasRunning];
11131117
}

0 commit comments

Comments
 (0)