我自己写了一个自定义控件来更改图片的斜切,在UI编辑器中将图片的SkewX设置了为16,并且显示正常,
当时当用程序读出这个JSON文件的时候,原本被设置的斜切的图片的SkewX又变回了0。。。
这是为什么啊?????????????????
求解释,是那个导出的DLL文件还要放置在其他地方吗???求解答啊,在线等!!!着急中…



没有人嘛…求帮助啊
你好,自定义控件除了要做控件外,还有添加解析 处理。
另外dll也要放到对应的文件夹内。
//注册自定义控件
Size size = Director::sharedDirector()->getWinSize();
GUIReader *guireader = GUIReader::shareReader();
guireader->registerTypeAndCallBack(“CustomImageView”,
&CustomImageView::createInstance,
CustomImageViewReader::getInstance(),
parseselector(CustomImageViewReader::setProperties));
也把生成的DLL放到了CocoStudio\Plugins\1.4这个下面…
我用的是cocos2dx3.1 编辑器的版本是1.4
哦,那你检查下导出的json文件里,对应控件是否记录下了这个自定义属性。
没有…
void CSCustomImageView::CS_SetSkewX(float cValue)
{
GetInnerObject()->setSkewX(cValue);
m_SkewX = cValue;
}
float CSCustomImageView::CS_GetSkewX()
{
return m_SkewX;
}
void CSCustomImageView::CS_SetSkewY(float cValue)
{
GetInnerObject()->setSkewY(cValue);
m_SkewY = cValue;
}
float CSCustomImageView::CS_GetSkewY()
{
return m_SkewY;
}
void CSCustomImageView::CS_SetResourceData(CSResourceData rValue)
{
m_ResourceData = rValue;
}
CSResourceData CSCustomImageView::CS_GetResourceData()
{
return m_ResourceData;
}
void CSCustomImageView::CloneWidgetCustomProperty(CSWidget* cWidget)
{
CSCustomImageView* csImage = dynamic_cast<CSCustomImageView*>(cWidget);
if (csImage != NULL)
{
this->CS_SetBoolTest(csImage->CS_GetBoolTest());
this->CS_SetColorTest(csImage->CS_GetColorTest());
this->CS_SetDoubleTest(csImage->CS_GetDoubleTest());
this->CS_SetFloatTest(csImage->CS_GetFloatTest());
this->CS_SetIntTest(csImage->CS_GetIntTest());
this->CS_SetStringTest(csImage->CS_GetStringTest());
this->CS_SetResourceData(csImage->CS_GetResourceData());
}
}
难道是因为最后这个地方我没有添加那两个属性进去吗…!!!!!!!!
“customProperty”: “{“StringTest”:null,“IntTest”:0,“FloatTest”:1,“DoubleTest”:1,“BoolTest”:true,“ColorTest_R”:100,“ColorTest_G”:100,“ColorTest_B”:200,“SkewX”:12,“SkewY”:0,“ResourceData”:“11.png”,“ResourceData_type”:0,“ResourceData_plist”:null}”,
刚刚没注意,其实是有的…
但是程序里面还是不行