Cocostudio 用户数据获取教程(含代码)

环境:framework3.8+studio2.3.2.3
语言:c++

代码:
#include “editor-support/cocostudio/CCComExtensionData.h”

auto userdata = ((cocostudio::ComExtensionData*)(image->getComponent(“ComExtensionData”)))->getCustomProperty();

log("%s", userdata.c_str());

环境:framewor3。5+studio2.2.6
语言:c++

示例代码直接下载,即可运行。

代码使用教程”自定义类“的代码,所以代码多了两行。

studio截图:

代码截图:

输出截图:

工程链接:http://yunpan.cn/cjWjZzFvk5MxR 访问密码 fe35

请问,大牛,lua中怎么用?

同问lua怎么用:6::6::6::6::6::6::6:

lua好像是因为无法转化数据格式,所以没有这个方法。
js也有问题,所以暂时只有c++教程

:2: lua用法:

//lua_cocos2dx_extension_manual.cpp中加入extendCCNode(tolua_S);
int register_all_cocos2dx_extension_manual(lua_State* tolua_S)
{
extendControl(tolua_S);
extendAssetsManager(tolua_S);
extendScrollView(tolua_S);
extendTableView(tolua_S);
extendManifest(tolua_S);
extendEventListenerAssetsManagerEx(tolua_S);
extendParticleSystem3D(tolua_S);
extendParticlePool(tolua_S);

extendCCNode(tolua_S);

return 0;

}

//定义extendCCNode方法

static void extendCCNode(lua_State* tolua_S)
{
lua_pushstring(tolua_S, “cc.Node”);
lua_rawget(tolua_S, LUA_REGISTRYINDEX);
if (lua_istable(tolua_S, -1))
{
tolua_function(tolua_S, “getCustomProperty”, lua_cocos2dx_extension_Node_getCustomProperty);
}
lua_pop(tolua_S, 1);
}

int lua_cocos2dx_extension_Node_getCustomProperty(lua_State* tolua_S)
{
int argc = 0;
cocos2d::Node* cobj = nullptr;
bool ok = true;

#if COCOS2D_DEBUG >= 1
tolua_Error tolua_err;
#endif

#if COCOS2D_DEBUG >= 1
if (!tolua_isusertype(tolua_S, 1, “cc.Node”, 0, &tolua_err)) goto tolua_lerror;
#endif

cobj = (cocos2d::Node*)tolua_tousertype(tolua_S, 1, 0);

#if COCOS2D_DEBUG >= 1
if (!cobj)
{
tolua_error(tolua_S, “invalid ‘cobj’ in function ‘lua_cocos2dx_extension_Node_getCustomProperty’”, nullptr);
return 0;
}
#endif

argc = lua_gettop(tolua_S) - 1;
if (argc == 0)
{
    if (!ok)
    {
        tolua_error(tolua_S, "invalid arguments in function 'lua_cocos2dx_extension_Node_getCustomProperty'", nullptr);
        return 0;
    }
    std::string ret = ((cocostudio::ObjectExtensionData*) cobj->getUserObject())->getCustomProperty();

    tolua_pushcppstring(tolua_S, ret);
    return 1;
}
luaL_error(tolua_S, "%s has wrong number of arguments: %d, was expecting %d \n", "cc.Node:getCustomProperty", argc, 0);
return 0;

#if COCOS2D_DEBUG >= 1
tolua_lerror:
tolua_error(tolua_S, “#ferror in function ‘lua_cocos2dx_extension_Node_getCustomProperty’.”, &tolua_err);
#endif

return 0;

}

//最后,不要忘记include
#include “CCObjectExtensionData.h”

以上都是在lua_cocos2dx_extension_manual.cpp文件修改就可以了,编译完c后,lua只要是node的类型,调用"cc.Node:getCustomProperty"方法就能获取用户数据

不要谢我,我是雷锋

雷锋啊 谢谢

你好,我想请问下 Button 控件设置正常状态和按下状态还有禁用状态的时候 我只能从图片拖入进去 那么你是怎么做到按下状态的尺寸变小 和 禁用状态变灰色的呢?