• Cocos2d-x场景功能描述的生命周期


    层(Layer)的生命周期函数有例如以下:

    init()。初始化层调用。

    onEnter()。进入层时候调用。

    onEnterTransitionDidFinish()。

    进入层并且过渡动画结束时候调用。

    onExit()。退出层时候调用。

    onExitTransitionDidStart()。退出层并且開始过渡动画时候调用。

    cleanup()。

    层对象被清除时候调用。

    提示 层(Layer)继承于节点(Node),这些生命周期函数根本上是从Node继承而来。其实全部Node对象(包含:场景、层、精灵等)都有这些函数。仅仅要是子类化这些类都能够重写这些函数,来处理这些对象的不同生命周期阶段事件。

    我们重写HelloWorld层的中几个生命周期函数,代码例如以下:

    ?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    bool HelloWorld::init()
    {          
        if( !Layer::init() )
        {
             returnfalse;
        }
      
        log("HelloWorldinit");
        ......
        returntrue;
    }
      
    void HelloWorld::onEnter()
    {
        Layer::onEnter();
        log("HelloWorldonEnter");
    }
      
    voidHelloWorld::onEnterTransitionDidFinish()
    {
        Layer::onEnterTransitionDidFinish();
        log("HelloWorldonEnterTransitionDidFinish");
    }
      
    void HelloWorld::onExit()
    {
        Layer::onExit();
        log("HelloWorldonExit");
    }
      
    voidHelloWorld::onExitTransitionDidStart()
    {
        Layer::onExitTransitionDidStart();
        log("HelloWorldonExitTransitionDidStart");
    }
      
    void HelloWorld::cleanup()
    {
        Layer::cleanup();
        log("HelloWorldcleanup");
    }

    注意 在重写层生命周期函数中,第一行代码应该是调用父类的函数。比如HelloWorld::onEnter()中第一行应该是Layer::onEnter()函数,假设不调用父类的函数可能会导致层中动画、动作或计划无法运行。

    假设HelloWorld是第一个场景,当启动HelloWorld场景时候,它的调用顺序例如以下图所看到的:

  • 相关阅读:
    HTTP状态码
    NSData NSDate NSString NSArray NSDictionary 相互转换
    NSDictionary to jsonString || 对象转json格式
    git 上传本地文件到github
    NSAssert用法
    深入理解GCD(一)
    ug-Assertion failure in [MyClass layoutSublayersOfLayer:]
    构建之法阅读笔记01
    学习进度
    四则运算程序
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4759382.html
Copyright © 2020-2023  润新知