1. 程式人生 > >Cocos2d-x 場景中的生命週期函式?

Cocos2d-x 場景中的生命週期函式?

在Cocos2d-x中有這麼幾個函式,非常的常見。

virtual bool init( );

virtual void onEnter( );

virtual void onEnterTransitionDidFinish( );

virtual void onExitTransitionDidStart( );

virtual void onExit( );

virtual void cleanup( );

這6個函式都是Node節點類中的虛擬函式,也就是說,它的子類可以重寫這些函式。而且這些函式的執行有一定的順序。

情況一:單個場景從初始化 –> 退出 過程

bool init(){

if(!Layer::init()){ //父類的總是要先執行

return false;

}

return true;

}

void onEnter( ){

Layer::onEnter( );

}

void onEnterTransitionDidFinish( ){

Layer::onEnterTransitionDidFinish( );

}

注意:沒有執行onExitTransitionDidStart(),因為只有一個場景。

void onExit( ){

  Layer::onExit( );

}

void cleanup( ){

Layer::cleanup( );

}

情況二:場景A 跳轉到 場景B 【replaceScene】

B: bool init( );

A : onExitTransitionDidStart( );

B : void onEnter( );

A : void onExit( );

B : void onEnterTransitionDidFinish( );

A : void cleanup( );

情況三: 場景A 跳轉到 場景B 【pushScene】

注意少了 void cleanup( );函式

B: bool init( );

A : void onExitTransitionDidStart( );

B : void onEnter( );

A : void onExit( );

B : void onEnterTransitionDidFinish( );

情況四: 從場景B 跳轉到 場景A 【popScene】

注意沒有 A: bool init( ); 因為不用初始化2次。

B: void onExitTransitionDidStart( );

B: void onExit( );

B : void cleanup( );

A: void onEnter( );

A : void onEnterTransitionDidFinish( );

相關推薦

Cocos2d-x 場景生命週期函式

在Cocos2d-x中有這麼幾個函式,非常的常見。 virtual bool init( ); virtual void onEnter( ); virtual void onEnterTransitionDidFinish( ); v

生命週期函式的使用場景

避免子元件做多次無用的渲染 shouldComponentUpdate(nextProps,nextState){ if( this.props.content!=nextProps.content){ return true }else{ retu

react生命週期函式

萬物皆有生命週期。 生命週期函式指在某一個時刻元件會自動執行的函式。 render constructor也可以理解為一個生命週期函式。在元件一建立的時刻,被自動的呼叫 1、initialzation 元件初始化的時候 (constructor的呼叫

vue生命週期函式都在什麼時候執行?

1.beforeCreat 第一個生命週期函式,表示例項在完全創建出來之前會執行它,在執行它時,data和methods中的資料都還未初始化。 2.created 第二個生命週期函式,此時data和methods已經初始化完成,created()完成之後,

Cocos2d-x優化關於背景圖片優化

指針 text .cpp 互動出版網 沒有 tde white 實現 origin 因為背景圖片長時間在場景中保存,並且圖片非常多,我們能夠對其進行一些優化。我們通過例如以下幾個方面考慮優化:1、不要Alpha通道背景圖片的特點是不須要透明的,所以紋理格式能夠採用不帶有A

cocos2d-x js 創建node的方法

大小 時間 ssp strong table 精靈sprite fin ima batchnode 1、精靈Sprite 一共4種創建方式 (1) 根據圖片資源路徑創建 1 2 3 4 //參數1:圖片資源路徑 var sprite1 = cc.Sprit

Vue生命週期函式詳解

 vue例項的生命週期 1 什麼是生命週期(每個例項的一輩子) 概念:每一個Vue例項建立、執行、銷燬的過程,就是生命週期;在例項的生命週期中,總是伴隨著各種事件,這些事件就是生命週期函式; 生命週期:例項的生命週期,就是一個階段,從建立到執行,再到銷燬的階段; 生命週期函式:在例項的生命週

iOS開發:第一個iOS程式分析——代理,生命週期函式

上一篇文章中我們開發了第一個iOS應用程式,用來計算兩個整數的和,今天我們將介紹其中的兩個檔案: 1.main.m檔案 首先展開supporting Files並且開啟其下的main.m檔案,其中main函式就是應用程式的入口,main函式只是標記了一個自動釋放池自動決定何時釋放記憶體,

Vue學習(7)————————元件以及生命週期函式,vue-resource請求資料

首先建立一個Home.vue檔案 <template> <div> <p>{{msg}}</p> <button v-on:click="headRun()">跑</button> </di

Vue入門和基礎——生命週期函式

Vue入門和基礎(二) 生命週期函式: 每個Vue例項被建立的時候都要經歷一系列的初始化過程,這個過程就是Vue的生命週期 先上一張官圖 其實官網上已經表明的很詳細了,從圖中我們可以看一個Vue例項的一整個生命週期中有很多個鉤子函式,不用的鉤子函式提供給我們在不同的時期進行操作,如

vue父子元件生命週期函式執行順序

vue父元件載入和銷燬執行最後一個鉤子函式之前先執行一遍子元件的鉤子: 1.載入 父:beforecreate-created-beforeMount-(子:beforecreate-created-beforeMount-mounted)-mounted 2.銷燬 父:beforeDestroy--

vue-生命週期函式

還未被解析,我們可以手動新增msg的值 console.log("%c%s","color:red","message: " + this.message); //已被初始化 },

React生命週期函式

生命週期函式指在某一時刻元件會自動呼叫執行的函式 React生命週期 掛載時的生命週期 componentWillMount // 在元件第一次被掛載到頁面前的時刻執行 componentDidMount // 在元件第一次被掛載到頁面後的時刻執行 更新時的

ReactNative入門教程-元件生命週期函式

1.元件例項化階段 defaultProps: 設定元件的初始屬性值,比如設定預設Color,width等,可以在通過this.props獲取相應的值 constructor(props): 這裡通過this.props可以獲取defaultProps設定的預設屬性值,同時這裡

React生命週期函式的使用

1.constructor():建構函式 執行時間:元件被載入前最先呼叫,並且僅呼叫一次 作用:定義狀態機變數 注意:第一個語句必須是super(props),正確定義狀態機程式碼如下 constructor(props) { super(props); this.state = { con

React學習之旅----生命週期函式

app.js import React, { Component } from 'react'; // import logo from './assets/images/logo.svg'; // import './assets/css/App.css'; // 引入

vue所有生命週期函式/鉤子函式理解

下邊是一個template 的程式碼,裡邊包含了所有vue 生命週期函式,我們可以vue-cli 專案中新建一個模板把下邊程式碼全都複製進去,然後F12開啟審查元素,觀察這些生命週期函式打印出來的log 裡的區別! <template> <div class

Vue之生命週期函式

<template> <div id="root"> <!-- <div ref="title">{{title}}</div> --&

React 生命週期函式

前言       生命週期函式指某一時刻元件會自動執行的函式,用來管理元件。 先來張大圖便於理解各個周期函式的執行時刻: 一、constructor:            constructor(props) { super(props);//此句必須在該方

cocos2d-x場景切換時記憶體過高導致crash 解決方法

最近在做一個cocos2d-x的專案時,遇到一個問題,就是在pc上執行都是ok的,可是在ipad和andriod上面,在場景切換時時常會掛掉,用蘋果自帶的Instruments工具檢測時,發現在場景正常執行時,記憶體大概保持在三四十兆,但是在場景切換時,一瞬間會達到七八十兆,遇到一些素材比較多或者層