2011-08-30 65 views
1

我可以通過onEnter和onExit方法捕捉場景變化事件。但是當場景變化事件需要時間時,比如淡入或淡出,onEnter被調用提前(在淡入之前)並且onExit被調用到遲(在淡入淡出之後)。在cocos2d中,是否有與onEnter和onExit並列的東西?

我想在淡入淡出之前調用另一個onEnter,在淡出之前調用另一個onExit。我可以嗎?

回答

4

有一個第二的OnEnter回調只是爲了過渡,這就是所謂的onEnterTransitionDidFinish。但正如已經提到的那樣,只有在CCScheduler與CCSceneTransition結合使用時纔會觸發。

+0

是的,我發現並使用了。謝謝。 – willzeng

2

在CCFadeIn中使用CCSequence,然後在其後面添加CCCallFunc。

onEnter和onExit是用來做CCNode對象的分配和刪除,而不是物理視圖。

示例代碼:

[scene runAction:[CCSequence actions: 
    [CCFadeIn actionWithDuration:0.45f], 
    [CCCallFunc actionWithTarget:scene selector:@selector(fakeOnEnter:)], nil]]; 

內部場景的對象,您將需要一個方法,這樣,

-(void) fakeOnEnter:(id)sender { 
    // your code to run after the fadein 
} 
+0

不是說這不是一個有效的策略,但是內置的功能涵蓋了這個主題。 –

+2

這隻有在使用CCDirector的過渡方法在場景之間正確衰減時纔有效,但是您的權利,我們需要從他的更多說明中瞭解他如何創建場景並將其帶入屏幕。 – Bongeh

+0

你是對的;我相應地更新了我的答案。 –

相關問題