标签:
似乎是从3.3还是更早,Scale9Sprite(原名CCScale9Sprite)的配置流程大概是这样的:
1、VS配置:配置C/C++引用,导入extension库。(包括链接库)
2、代码增加.h文件及namespace。基本上就是两句:
#include "cocos-ext.h" USING_NS_CC_EXT;//(或者using namespace cocos2d::extension)
参考http://blog.csdn.net/five50/article/details/8748833
但从3x开始?九妹就改名了!也就移动到了ui命名空间下,也不用特别配置VS2013引用。
所以,基本上就是增加.h引用:
#include "ui\UIScale9Sprite.h";
使用时
ui::Scale9Sprite 或者 using namespace ui;
就可以了。
这就结束了?当然不。
你造吗。如果很不幸,勤劳的你按找来的教程,先引用好extension的头文件和namespace声明,发现不生效,转而尝试第二种方法之前没有去掉extension的namespace;那么即使加了UIScale9Sprite.h的引用,ui命名空间下也找不到Scale9Sprite 哦!ui下只能找到Widget。VS报错不通过。
好绕。上面那段文字是说
#include "cocos2d.h" #include "cocos-ext.h" #include "ui\UIScale9Sprite.h"; USING_NS_CC; USING_NS_CC_EXT;
这样是不行的。
其实3x后cocos项目的目录结构也发生变化,项目下根本找不到extensions包!但万一你和我一样,机智的把cocos框架下名为extensions的包引用进来了,就会发生上面的问题了,呵呵……
其实C++菜鸟真的不太懂怎么回事,在绝望中翻看各种教程,但官方文档还停留在extension::Scale9Sprite ,呵呵。
瞎猜是引用extension包含了ExtensionDeprecated,这个名字就很可疑的类搞的鬼。
CC_DEPRECATED_ATTRIBUTE typedef ui::Scale9Sprite Scale9Sprite;
就是这句把ui::Scale9Sprite废掉了吧。吧?吧!
至于为什么这么做?不懂……
标签:
原文地址:http://www.cnblogs.com/akitech/p/4290783.html