http://www.cocoachina.com/bbs/read.php?tid=458895&page=1&toread=1#tpc
New: 教程司令部已经更新了教程 往后不再使用链式的教程结构
假如我们有很多张图片
比如说这里演示的头像
我们想要动态在Assert上获取这些图片并且修改Sprite上的spriteFrame
那么可以这么做
我们先演示一下
原先的纹理是黄色头发的小女孩 修改纹理的脚本和精灵组件在一个节点上
然后我们运行一下
纹理已经替换了
那么我讲一下限制条件
第一 不能读plist图集
我这边出了点问题不能打包
我用另一个打包好的项目说一下
那么上面是之前打包后plist的目录 实际上只剩下了大图
小图的plist信息都成json文件了
而我们之前代码里面的
var realUrl = cc.url.raw(‘image/girl233.png’);
实际上是将CocosCreator项目里的目录映射到打包后项目的目录里
这个是console.log(‘realUrl’);的信息
那么动态获取RawAssert图片的过程我们大概就有底了
plist的小图在打包后的项目里根本就没有那张小图 只有大图
之后会测试能不能用cc.loader.loadJSON
不过目前用这用方法是不能读plist的小图的
只能拆开来
那么第二 一开始Sprite节点上必须要有一个default SpriteFrame
为什么呢
我们试一下SpriteFrame置空 然后console.log(this.getComponent(cc.Sprite));
我们就会发现找不到setTexture方法
为什么呢= =
我们将上面Sprite的信息展开
这就是为什么我们一开始要设置一个default SpriteFrame了
因为setTexture方式是从spriteFrame那边拿过来的
如果一开始没有纹理
就拿不到spirteFrame
也拿不到setTexture方法
也就换不了纹理了
那么 代码: http://pan.baidu.com/s/1o76dzv0,1
http://www.cocoachina.com/bbs/read.php?tid=458895&page=1&toread=1#tpc