点击根节点 eI/\I:G{f
@H_403_18@
>,] eL
Ovaj":L
(!XYH@Mz<w
i(&6ys5
在属性栏中修改自定义类类名,如 @H_403_18@:MyClass l ))~&
@H_403_18@
;EE&~&*w
6*(h9!_T1
2. 加入UI控件,修改回调方法。 RAD4q"}k
选中想要设置回调特性的控件,进入高级属性,修改回调方法和对应回调的名称。 ery?G-
如: @H_403_18@Touch 方法,名称为 @H_403_18@onTouch `aO@N(
@H_403_18@
(IoPU+1b
PtPGi^
然后发布资源 !7Yt`l$$z
3. 在C++中,创建一个自己的自定义类。 Zgy2Pot
这个类必须遵循如下要求: 5ykk11!p$
@H_403_18@a. 继承 @H_403_18@WidgetCallBackHandlerProtocol 和 @H_403_18@Node( 或其他继承自 @H_403_18@Node 的类 @H_403_18@) ard3yNQt
@H_403_18@b. 重写如下接口: =7J|KoKK
@H_403_18@onLocateTouchCallback 764}yV>
@H_403_18@onLocateClickCallback MoKXl?B<
@H_403_18@onLocateEventCallback v8 '`gY
返回对 @H_403_18@Touch 、 @H_403_18@Click 、 @H_403_18@Event 三种事件的处理函数。(可以只重写你使用到的回调类型)。 "j.oR}s9?#
如: cmr6,3_
@H_403_18@//.h file 0ez i?Um
{>UMw>T[
:m)Rmwn_
^qId]s
nuQ Lq^e
GmmT'3Q
FSYjp{z5
c~pUhx1(
Wf`Oye Rz
#*>7X>,J
@H_403_18@{
@H_403_18@ccWidgetClickCallback
@H_403_18@};
@H_403_18@//.cpp file 21/a3Mlx#
@H_403_18@
@H_403_18@
@H_403_18@
@H_403_18@
@H_403_18@{
@H_403_18@ {
@H_403_18@ }
@H_403_18@
@H_403_18@}
@H_403_18@
@H_403_18@ {
@H_403_18@}
@H_403_18@
@H_403_18@ {
@H_403_18@ }
@H_403_18@}
@H_403_18@
@H_403_18@{
@H_403_18@}
@H_403_18@
@H_403_18@{
@H_403_18@}
@H_403_18@
@H_403_18@{
@H_403_18@}
^?^|Y?f2P?
4. 为第3步编写的类创建工厂类 H:{(CY?t
这个类必须继承 @H_403_18@cocostudio::NodeReader ,并重写如下三个接口 K}5 $;W#
@H_403_18@getInstance —— @H_403_18@ 返回工厂类的单例 t6L^ #\'
@H_403_18@purge —— @H_403_18@ 销毁工厂类 r/q1&*T
@H_403_18@createNodeWithFlatBuffers —— @H_403_18@ 创建第 @H_403_18@3 步编写的类,并调用 @H_403_18@setPropsWithFlatBuffers %dk$K!5D0
如: 1TxhEXB
@H_403_18@//.h file $OFFH[_z
@H_403_18@
@H_403_18@{
@H_403_18@
@H_403_18@
@H_403_18@};
@H_403_18@#endif /*defined(__cocos2d_libs__MyClassReader__) */ 4qSS<SqY
@H_403_18@//.cpp file
@H_403_18@
@H_403_18@{
@H_403_18@ {
@H_403_18@ }
@H_403_18@}
@H_403_18@{
@H_403_18@}
@H_403_18@{
@H_403_18@
@H_403_18@
}
a+a%}76N
Mi/'4~0Y
5. 在加载节点之前注册这个接口到CSLoader中 %C E@}
@H_403_18@
instance
->
registReaderObject
(
"
MyClassReader"
,
(
ObjectFactory
::
Instance
)
MyClassReader
::
getInstance
);
@H_403_18@注意第一个参数必须是第一步填写的自定义类名加“Reader ”如上述的"MyClassReader" n%ArA])_& 6. 使用CreateNode @H_403_18@加载你的节点。 1'U%7#;E
1\608~ZH
>'1Q"$;
Bzy=@]`
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!注意:!!! Mn\ B\
你的自定义类的create已经委托给工厂类,只要你注册工厂类的时候没写错,工厂类会在createNode里边create你的自定义类。g-V\ s&}
所以不需要你自己再create自定义类。 最终createNode返回的就是你的自定义类。 wPO@f~[Ji