引用的帖子说道:
注意:这个路径信息是相对于Resources的路径,并非相对于配置文件的!很多用户导出文件后更改原有导出目录结构,导致在cocos2d-x程序中黑屏或其他不加载现象多数都是由此照成的!!!
我用的cocos2d-javascript 和 cocos2d-html5,经测试,的确是基于配置文件(json文件)的。
我用vc跟了一下cocoStudio的c++版本。看到以下代码,是不是是我理解错了某个地方。
// ImageView组件的创建为例
void WidgetPropertiesReader0300::setPropsForImageViewFromJsonDictionary(cocos2d::gui::Widget*widget,const rapidjson::Value& options)
{
setPropsForWidgetFromJsonDictionary(widget, options);
cocos2d::gui::ImageView* imageView = (cocos2d::gui::ImageView*)widget;
const rapidjson::Value& imageFileNameDic = DICTOOL->getSubDictionary_json(options, "fileNameData");
int imageFileNameType = DICTOOL->getIntValue_json(imageFileNameDic, "resourceType");
switch (imageFileNameType)
{
case 0:
{
std::string tp_i = m_strFilePath; // 这里赋值的一次路径,这个路径前面的赋值是 m_strFilePath = jsonpath.substr(0,pos+1); json文件的路径
const char* imageFileName = DICTOOL->getStringValue_json(imageFileNameDic, "path"); // json的path字段值,根目录是cocoStudio项目的Resources。
const char* imageFileName_tp = NULL;
if (imageFileName && (strcmp(imageFileName, "") != 0))
{
imageFileName_tp = tp_i.append(imageFileName).c_str(); // 这里做了一次拼接,我感觉就是把json文件的路径后面append了一个Resources路径。
// cocos2d::CCFileUtils::sharedFileUtils()->fullPathForFilename( strImageFileName ); 也许这样才能读取到以cocoStudio项目下Resources文件夹为根目录的资源。
imageView->loadTexture(imageFileName_tp);