首页 > 代码库 > cocos2d-js引擎学习笔记
cocos2d-js引擎学习笔记
Scale9Sprite
在用Scale9Sprite.create的时候出现Uncaught TypeError: Cannot call method ‘create‘ of undefined这个错误,
后来发现在默认情况下,project.json里的modules只自带cocos2d模块,通过检查frameworks/cocos2d-html5/moduleConfig.json,可以看到cocos2d模块里并没有CCScale9Sprite.js这个类。
它在GUI里,所以可以在modules里添加"GUI"这个模块,或者可以像我这样,在moduleConfig.json里写一个myNeedfulClass这样的模块,里面添加CCScale9Sprite.js这个类,这样只要在modules里添加"myNeedfulClass"就行。有个好处就是可以不用加载GUI里其他的类。测试代码如下
var tmp = cc.Sprite.create(res.Block9); var theSize = tmp.getContentSize(); var fullRect = cc.rect(0,0,theSize.width,theSize.height); var insetRect = cc.rect(32,32,theSize.width-64,theSize.height-64); var scale9sprite = cc.Scale9Sprite.create(res.Block9,fullRect,insetRect); scale9sprite.setContentSize(theSize.width*3,theSize.height*2); scale9sprite.x = size.width/2; scale9sprite.y = size.height/2; this.addChild(scale9sprite);
原先图片:
经过上述代码处理后的图片:
效果是A,B,C,D四个角大小不变,top,bottom俩条边横向拉伸,left,right俩条边纵向拉伸,中间的center既横向又纵向拉伸。
用在适配的地方比较多,譬如一个BUTTON精灵。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。