cocos2d中关于回调函数的pSender参数的问题

问题描述

cocos2d中关于回调函数的pSender参数的问题 10C
运行结果显示,CallBack1和CallBack2产生的效果是一样的,请问CallBack2处的pSender的作用是什么,为什么Sprite* sp = (Sprite*)pSender;后sp与sprite等效了?

cpp中

 void MyScene::goMenu(cocos2d::Ref* pSender){    log(""Tag=%i""this->getTag());    switch (this->getTag())    {    case func:        this->OnCallFunc(pSender);        break;    case funcN:        this->OnCallFuncN(pSender);        break;    }}void MyScene::backMenu(Ref* pSender){    Scene* scene = HelloWorld::createScene();    Director::getInstance()->replaceScene(scene);}void MyScene::OnCallFunc(Ref* pSender){    FiniteTimeAction* ac1 = MoveBy::create(2Vec2(100100));    FiniteTimeAction* ac2 = ac1->reverse();    FiniteTimeAction* acf = CallFunc::create(CC_CALLBACK_0(MyScene::CallBack1this));    FiniteTimeAction* seq = Sequence::create(ac1acfac2NULL);    log(""%p"" this->sprite);    this->sprite->runAction(Sequence::create(seqNULL));}void MyScene::OnCallFuncN(Ref* pSender){    FiniteTimeAction* ac1 = MoveBy::create(2 Vec2(100 100));    FiniteTimeAction* ac2 = ac1->reverse();    FiniteTimeAction* acf = CallFuncN::create(CC_CALLBACK_1(MyScene::CallBack2 this));    FiniteTimeAction* seq = Sequence::create(ac1 acf ac2 NULL);    sprite->runAction(Sequence::create(seqNULL));}void MyScene::CallBack1(){    sprite->runAction(TintBy::create(0.5 255 0 255));}void MyScene::CallBack2(Ref* pSender){    Sprite* sp = (Sprite*)pSender;    sp->runAction(TintBy::create(0.5 255 0 255));}

头文件中

 #pragma once#include ""cocos2d.h""using namespace cocos2d;class MyScene :public Layer{    Sprite* sprite;public:    static Scene* createScene();    virtual bool init();    CREATE_FUNC(MyScene);    void goMenu(Ref* pSender);    void backMenu(Ref* pSender);    void OnCallFunc(Ref* pSender);    void OnCallFuncN(Ref* pSender);    void CallBack1();    void CallBack2(Ref* pSender);};

解决方案

http://www.2cto.com/kf/201401/275831.html

时间: 2025-01-30 15:23:15

cocos2d中关于回调函数的pSender参数的问题的相关文章

线程中的回调函数如何获得返回值,请高手开悟,在线等......

问题描述 普通回调方法:classA{classBxx=newclassB();stringss=k.ca(tm);stringtm(stringxm){returnxm+"一杯醉倒";}}classB{publicdelegatestringtc();publicstringca(tcmm){MessageBox.Show("到这里了!");returnmm("我");}}执行stringss=k.ca(tm);语句后,得到回调函数tm的返回值

PHP中call_user_func_array回调函数的用法示例_php技巧

call_user_func_array call_user_func_array - 调用回调函数,并把一个数组参数作为回调函数的参数 mixed call_user_func_array ( callable $callback , array $param_arr ) 把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入. 例子: function foobar($arg, $arg2) { echo __FUNCTION__, " g

cocos2D v3.x中动作回调函数的变化

cocos2D v3.x版本中的动作的回调函数不能再带任何参数并且不能返回任何值. 官方给出的传递参数的办法是: 选择器(selector)不能带有任何形参,选择器需要的参数必须通过ivar或property来间接传递. 通常更可取的避免通过ivar或property来传递参数的办法是使用CCActionCallBlock. 示例代码如下: id callFunc = [CCActionCallFunc actionWithTarget:self selector@selector(myCall

理解javascript中的回调函数(callback)_javascript技巧

最近在看 express,满眼看去,到处是以函数作为参数的回调函数的使用.如果这个概念理解不了,nodejs.express 的代码就会看得一塌糊涂.比如: 复制代码 代码如下: app.use(function(req, res, next) {     var err = new Error('Not Found');     err.status = 404;     next(err); }); app是对象,use是方法,方法的参数是一个带参的匿名函数,函数体直接在后面给出了.这段代码

怎样理解java中的回调函数

问题描述 最近遇到回调函数问题,有点不太理解,到底什么是回调函数,有何用途,与命令模式是不是有点关系! 解决方案 是可以这样说的·这个在spring中尤其明显,比如spring中的运用到的AOP2.0以后的框架,在spring配置文件中引入aop2.0以后的命名空间后可以这样配置:<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.or

Javascript中的回调函数和匿名函数的回调示例介绍_javascript技巧

复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 匿名函数自调的意义: 1.营造了一个封闭的空间 2.防止变量冲突 3.有选择性的对外开发(第三方框架都是对js这样封装

请高手帮我解决一个VB.NET调用c++ DLL 中的回调函数的问题

问题描述 我有个test.dll是c++写的dll,现在我要用vb.net调用这个dll中的SetCallback回调函数,请问怎么在vb.net中实现,请高手们具体列出代码,应我是新手,谢谢.以下是c++中的头文件定义的一部分typedefvoid(__stdcall*CCallback)(unsignedlongmsg,unsignedlonghparam,unsignedlonglparam);extern"C"voidR888DLL_API__stdcallSetCallbac

Lua中让回调函数支持回调对象方法的解决方法_Lua

在 Cocos2d-Lua 中,存在很多异步或延迟的操作,例如后台加载图片.等待一定时间执行代码等.这些功能的函数通常要求传入一个 function 作为参数. 复制代码 代码如下: -- 在后台加载一个图像,加载完成后输出消息 display.addImageAsync("hello.png", function()     print("load hello.png completed") end) 但如果我们希望这种回调支持一个对象方法,就有点小困难了.因为

JS 中AJAX回调函数success内的代码执行问题,有时执行,有时不执行

问题描述 在body中<asp:ButtonID="Button1"runat="server"Text="查询"OnClientClick="javascript:returnreport();"/>在<script>中functionreport(){Ext.Ajax.request({url:"/XFStatbyDay/XFStatbyDay",success:function