位置: 编程技术 - 正文

【新功能】“回调特性”的使用教程:

编辑:rootadmin
1.创建文件,修改自定义类名称。 H 'WFORso[ 点击根节点 eI/I:G&#;{f >,]&#;&#;&#; eL&#; Ovaj":L (!XYH@Mz<w i(&&#;6&#;ys5 在属性栏中修改自定义类类名,如:MyClass l ))~&#;& &#;&#;;EE&~&*w 6*(h9!_T1&#; 2.加入UI控件, 修改回调方法。 RAD&#;4q"}k 选中想要设置回调特性的控件,进入高级属性,修改回调方法和对应回调的名称。 &#;&#;er&#;y&#;?G- 如:Touch方法,名称为onTouch `a&#;O@&#;&#;N( (IoP&#;U&#;&#;1b &#;Pt&#;PGi^ 然后发布资源 !7Yt`l$$z 3.在C&#;&#;中,创建一个自己的自定义类。 Z&#;gy2P&#;ot 这个类必须遵循如下要求: 5&#;ykk!p$ a.继承WidgetCallBackHandlerProtocol和 Node(或其他继承自Node的类) &#;a&#;rd3yNQt b.重写如下接口: =7J&#;|K&#;oKK onLocateTouchCallback &#;4&#;}&#;yV> onLocateClickCallback MoKXl?B<&#; onLocateEventCallback v8&#; '`gY&#;&#; 返回对Touch、Click、Event三种事件的处理函数。(可以只重写你使用到的回调类型)。 "j.oR}s9?# 如: cm&#;r6,3_ //.h file 0&#;ez i&#;?Um {>U&#;Mw>&#;T[ :m&#;)Rmwn_ ^qId&#;]s&#; nuQ &#;Lq&#;^e Gm&#;mT'3Q FSYj&#;p{z5 c~&#;pUhx1&#;( Wf`Oye Rz&#; #*>&#;7X>&#;,J #ifndef__TestCpp__MyClass__#define__TestCpp__MyClass__#include"cocos2d.h"#include"cocostudio/CocoStudio.h"#include"cocostudio/WidgetCallBackHandlerProtocol.h"classMyClass: publiccocos2d::Node, publiccocostudio::WidgetCallBackHandlerProtocol{public:CREATE_FUNC(MyClass)MyClass();virtualcocos2d::ui::Widget::ccWidgetTouchCallbackonLocateTouchCallback(conststd::string &callBackName);virtualcocos2d::ui::Widget::ccWidgetClickCallbackonLocateClickCallback(conststd::string &callBackName);virtualcocos2d::ui::Widget::ccWidgetEventCallbackonLocateEventCallback(conststd::string &callBackName);voidonTouch(cocos2d::Ref* sender, cocos2d::ui::Widget::TouchEventTypetype);voidonClick(cocos2d::Ref* sender);voidonEvent(cocos2d::Ref* sender, inteventType);private:std::vector<std::string> _touchTypes;std::string_click;std::vector<std::string> _eventTypes;};//.cpp file /a3Mlx#&#; #include"MyClass.h"#include"ui/UIText.h"USING_NS_CC;usingnamespacestd;usingnamespacecocos2d::ui;MyClass::MyClass(){}Widget::ccWidgetTouchCallbackMyClass::onLocateTouchCallback(conststring &callBackName){if (callBackName == "onTouch")//判断事件名,返回对应的函数。下同 {returnCC_CALLBACK_2(MyClass::onTouch, this); }returnnullptr;}Widget::ccWidgetClickCallbackMyClass::onLocateClickCallback(conststring &callBackName){if (callBackName == "onClick") {returnCC_CALLBACK_1(MyClass::onClick, this); }returnnullptr;}Widget::ccWidgetEventCallbackMyClass::onLocateEventCallback(conststring &callBackName){if (callBackName == "onEvent") {returnCC_CALLBACK_2(MyClass::onEvent, this); }returnnullptr;}voidMyClass::onTouch(cocos2d::Ref* object, cocos2d::ui::Widget::TouchEventTypetype){CCLOG("onTouch");}voidMyClass::onClick(cocos2d::Ref* sender){CCLOG("onClick");}voidMyClass::onEvent(cocos2d::Ref* sender, inteventType){CCLOG("onEvent");}^?^|Y?f2P? 4.为第3步编写的类创建工厂类 &#;H:{(&#;CY?t 这个类必须继承cocostudio::NodeReader,并重写如下三个接口 K}5 $;W#&#; getInstance ——返回工厂类的单例 t&#;6L^ #' purge ——销毁工厂类 r/q&#;&#;&#;1&*T createNodeWithFlatBuffers ——创建第3步编写的类,并调用setPropsWithFlatBuffers %dk$K!5D0 如: 1Txh&#;EX&#;B //.h file $O&#;F&#;FH[_z #ifndef__cocos2d_libs__MyClassReader__#define__cocos2d_libs__MyClassReader__#include"cocos2d.h"#include"cocostudio/CocosStudioExport.h"#include"cocostudio/WidgetReader/NodeReader/NodeReader.h"classMyClassReader : publiccocostudio::NodeReader{ public:MyClassReader() {}; ~MyClassReader() {}; staticMyClassReader* getInstance();staticvoidpurge();cocos2d::Node* createNodeWithFlatBuffers(constflatbuffers::Table* nodeOptions);};#endif/*defined(__cocos2d_libs__MyClassReader__) */ 4qS&#;S<SqY //.cpp file#include"MyClassReader.h"#include"MyClass.h"USING_NS_CC;staticMyClassReader* _instanceMyClassReader = nullptr;MyClassReader* MyClassReader::getInstance(){if (!_instanceMyClassReader) {_instanceMyClassReader = newMyClassReader(); }return_instanceMyClassReader;}voidMyClassReader::purge(){CC_SAFE_DELETE(_instanceMyClassReader);}Node* MyClassReader::createNodeWithFlatBuffers(constflatbuffers::Table *nodeOptions){MyClass* node = MyClass::create();setPropsWithFlatBuffers(node, nodeOptions);returnnode;} a&#;a%}&#;N Mi/&#;'4~0Y 5.在加载节点之前注册这个接口到CSLoader中 %&#;&#;C E@}&#; CSLoader* instance = CSLoader::getInstance();instance->registReaderObject("MyClassReader",(ObjectFactory::Instance)MyClassReader::getInstance);注意第一个参数必须是第一步填写的自定义类名加“Reader ”如上述的"MyClassReader" n%ArA])_& 6. 使用CreateNode加载你的节点。 &#;1'U%7#;E ~ZH >'1&#;&#;Q"$; Bzy=@]` !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!注意:!!! Mn&#;&#; &#;B 你的自定义类的create已经委托给工厂类,只要你注册工厂类的时候没写错,工厂类会在createNode里边create你的自定义类。g-V&#; s&} 所以不需要你自己再create自定义类。最终createNode返回的就是你的自定义类。 wPO@f~[Ji

推荐整理分享【新功能】“回调特性”的使用教程:,希望有所帮助,仅作参考,欢迎阅读内容。

【新功能】“回调特性”的使用教程:

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

cocos2dx3.3 跑马灯功能的简单实现 ================================================头文件Marquee.h================================================#ifndef__H_MARQUEE_H__#define__H_MARQUEE_H__#includecocos2d.hclassMarquee:publiccocos2

cocos2dx3.3 便条提示语功能简单实现 =====================头文件===#ifndef__H_NOTETIP_H__#define__H_NOTETIP_H__#includeGlobal.hclassNoteTip:publicLayer{public:NoteTip();~NoteTip();CREATE_FUNC(NoteTip);staticvoidshow(constchar*content)

cocos2dx多边形纹理填充 演示demo:

标签: 【新功能】“回调特性”的使用教程:

本文链接地址:https://www.jiuchutong.com/biancheng/372741.html 转载请保留说明!

上一篇:cocos2dx HelloWorld代码分析

下一篇:cocos2dx3.3 跑马灯功能的简单实现(css跑马灯效果)

  • 航天金税盘使用说明
  • 对外捐赠固定资产属于营业外支出吗
  • 金税盘业务
  • 销货退回的税务处理
  • 减免税款借贷方表示
  • 金蝶迷你版会计科目代码格式
  • 企业所得税季报可以更正吗
  • 收到投资款的会计科目
  • 退回以前年度所得税费用会计分录
  • 企业内部控制调查问卷
  • 开发产品计入什么科目
  • 企业公益性捐赠支出税前扣除标准
  • 人工材料成本怎么分配
  • 设备安装和设备出售的税率一样吗
  • 为什么有的单位没有住房公积金
  • 如何降低房租
  • 分步法所分的成本计算步骤应是实际的生产步骤
  • 非居民企业提供劳务企业所得税
  • c盘空间变小的原因
  • 继承和赠与算夫妻共同财产吗
  • mac电脑command+s
  • shpc32.exe - shpc32是什么进程 有什么用
  • 无法访问或访问被拒绝是怎么解决
  • 小米mini路由器mesh
  • php生成二维码
  • 创建自定义对象主要哪几种方法,并写出基本语法结构?
  • 什么是实际成本计价
  • html怎么引入图片
  • vue3引入图片
  • 微信小程序游戏手游排行榜
  • 收押金退押金会计分录
  • 增值税发票打印机
  • 增值税发票2年了还能开吗
  • python中numpy数组和列表的区别
  • 用支票偿还货款
  • CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程
  • 免费下载仿iOS主题
  • 固定资产清理的金额怎么算
  • 酒店打印要钱吗
  • 长期股权投资减值准备是什么科目
  • 现金流量表季度期初现金余额怎么填
  • 劳务公司开出的劳务票需要申报个税吗
  • 研发支出是
  • 土地使用税减免税优惠
  • 增值税和所得税不一致的说明
  • 企业转让专利需要交什么税
  • 进口货物发生纳税义务时间为
  • 残保金缴纳计算方法2021
  • 营改增后房地产企业增值税如何核算
  • 支付宝可以对公账户转账吗怎么转
  • 销售货物退款会计分录
  • 应收票据背书转让分录
  • 百旺开发票清单
  • 如何冲其他应付款发票
  • 研发费加计扣除申报表怎么填
  • mysql数据库设置固定值
  • win10系统迅雷
  • solaris8+apache2+weblogic813+db2_82客户端+128 安装过程
  • 苹果mac双系统好不好
  • wrme.exe是什么
  • 键盘和鼠标冲突
  • windows升级后c盘满了
  • windows xp远程控制
  • macbook截图快捷键是哪个键
  • linux编译安装怎么卸载
  • win10计算机管理器
  • linux操作系统主要用来干嘛?
  • nodejs制作网站
  • js基础笔记
  • Knockout visible绑定使用方法
  • jquery实战
  • 复制到文件夹怎么弄
  • 别踩白块世界纪录视频
  • android_zh
  • 重庆市电子税务局官网登录入口注册
  • 减免所得税额怎样计算
  • 海南省地方税务局关于土地增值税清算有关问题的通知
  • 夫妻相聚
  • 登录上海电子税务局单位社保查询不到当月未交的
  • 发票清单盖章样本图片
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设