此贴长期更新,将介绍使用闪影时的一些注意事项,请使用前务必尽量理解。
**1.**闪影所有素材,都是动态加载的,所有素材都必需要放到CCC项目中的resources文件夹中。
**2.**闪影很多方法,都要传入Node或图块ID,但是相对来说,传入图块ID,会更安全一些,因为池对像的关系,绝对相同的对像会被重复利用。拿到同一个Node的索引,也可能会因为再次加载而转换另一个位置。所以图块ID,是唯一记录的媒介。
**3.**并不是所有显示区域内的所有对像,都有ID信息。其中组和图层Node,都没有ID。组是做为容器进行显示,当组中有图块时,才会被加载,否则将清除返回到池对像中。但是这里是有区别的,因是组是独一无二的,不存在相同一说。所以它的池对像也只存在它自己,这样话你可以对组进行一些透明度和颜色等更改,再加载时它会显示更改后的样子(但是不要更改坐标和旋转属性)。
至于图层对像,和上面的差不多,但是作用会更大一些,而且是一直存在的。我在黑小孩最初版本之时,曾提到过图层隐藏,和异图层移动的概念,有兴趣的也可以去了解一下。
**4.**上面也说过,组只是个父级容器,并不能改变图块计算规则,所以想着靠移动组,来移动里面的图块,是绝对不安全的,也不要想着通过遍历组里面的子对像,来得到所有图块的ID,因为即使是组,图块也遵循场外裁切的规律。如果组内有十个图块,很可能五个在舞台中,五个在舞台外,所以这是不安全的。
**5.**添加碰撞动画时,属性面版空帧时,会显示除tag参数外,其他都为0。这里要注意,当所有属性都为0,是可以写入的,但不代表空帧。这是因为空帧时,我不好将所有属性都隐藏,所为用0表示。但是0不代表没有,所有属性都为0了,其实就是将碰撞形状变成一个点,而且这个点是可以碰到的。但是空帧是将这个碰撞组件的enabled设置为false,是不可以碰到的。
**6.**碰撞体的外框,并不会计算到显示区域内,也就说一个图块没有在舞台中,那么它身上的碰撞体也不会被显示,即使这个图块的碰撞体的范围接触到了舞台显示区域。
**7.**闪影有地形和自由两种图块,相应的箭头与橡皮工具,都有区分选项。如果你发现无法选中,或是删除不了某种图块,请先看看工具下面的小选项,是否选错了。
**8.**我在做地图时,喜欢建一个人物层,然后将角色等相关放到人物层中,但这样有一点一定要注意,清除或更改地图时,要执行removeAll方法,但removeAll方法清除图层node时,会执行destroyAllChildren方法,如果你不及时,把你需要的node对像取出,那么肯定会一起销毁。
**9.**setLocationFun不是只是移动地图,也是更新地图,如果屏幕旋转导致地图没有及时更新,可以在相应位置执行一次setLocationFun来进行刷新,还有就是当隐藏图层Node的时候,会不进行地图计算,里面的图块也会回收,那么再次显示时,实际是显示空的图层,如果没有地方调用setLocationFun,那么很可能就会一直空,记住setLocationFun第三个参数是一个图层名,也就是说可以单层刷新。
