我可以通過onEnter和onExit方法捕捉場景變化事件。但是當場景變化事件需要時間時,比如淡入或淡出,onEnter被調用提前(在淡入之前)並且onExit被調用到遲(在淡入淡出之後)。在cocos2d中,是否有與onEnter和onExit並列的東西?
我想在淡入淡出之前調用另一個onEnter,在淡出之前調用另一個onExit。我可以嗎?
我可以通過onEnter和onExit方法捕捉場景變化事件。但是當場景變化事件需要時間時,比如淡入或淡出,onEnter被調用提前(在淡入之前)並且onExit被調用到遲(在淡入淡出之後)。在cocos2d中,是否有與onEnter和onExit並列的東西?
我想在淡入淡出之前調用另一個onEnter,在淡出之前調用另一個onExit。我可以嗎?
有一個第二的OnEnter回調只是爲了過渡,這就是所謂的onEnterTransitionDidFinish。但正如已經提到的那樣,只有在CCScheduler與CCSceneTransition結合使用時纔會觸發。
在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
}
不是說這不是一個有效的策略,但是內置的功能涵蓋了這個主題。 –
這隻有在使用CCDirector的過渡方法在場景之間正確衰減時纔有效,但是您的權利,我們需要從他的更多說明中瞭解他如何創建場景並將其帶入屏幕。 – Bongeh
你是對的;我相應地更新了我的答案。 –
是的,我發現並使用了。謝謝。 – willzeng