实现委托机制demo的情景描述:
LayerA是一个层,里面有个sprite,一旦A被初始化,这个sprite就会执行一个action;LayerB是另一个层。我在LayerB中加入了LayerA,但是要等到A中的那个sprite的action执行完毕后,B再立刻执行另外一个方法。
问题来了,我怎么在LayerB中知道LayerA中的sprite的action执行完了,那么解决的方法就是使用委托机制。
//首先创建一个VirtualClassC类,里面有一个虚函数。
class VirtualClassC
{
public:
//虚函数
virtual void actionFinished(){};
};
LayerA
接着创建LayerA,这个类继承CCLayer,并且有一个VirtualClassC类实例。
//**********************LayerA.h文件***************************
#ifndef __delegate__LayerA__
#define __delegate__LayerA__
#include <iostream>
#include "VirtualClassC.h"
#include "cocos2d.h"
USING_NS_CC;
class LayerA :public CCLayer
{
public:
virtual bool init();
CREATE_FUNC(LayerA);
VirtualClassC *delegate_;
void callBack();
};
#endif /* defined(__delegate__LayerA__) *