[faq] 常见问题集合,有问题请先看这里再发帖(8月29日更新)

提个 bug,直接在 Canvas 上面加了一个 layout 组件,然后将 layout 组件中的 Sprite 组件移除,并在 layout 组件中增加一个 Widget 组件,使整个容器挂在左上角,然后在 layout 中从左到右依次添加了 Sprite,Label,Sprite,Label,就是类似 coc 金币图标,金币数值的那种 ui 信息条,问题是:在浏览器中表现正常,但是原生 iOS 中场景刚出现时东西是挤在一起的,我意思是 Sprite 和 Label 交叠了,貌似是条目的包围框没取对,然而在后面消耗了金币更新标签内容时,原生 iOS 上面又恢复正常了

疑问:所有场景的 Sprite 现在都是和 SpriteFrame 挂钩的吧?遇到了一个问题,场景A 中有个 test.png 的 Sprite,场景 B 中也有个 test.png 的 Sprite,然后我在场景 B 中将 test.png 的 Sprite 的 spriteFrame 给修改了一下,譬如说原来是 w,h,我改成 w* 0.5f, h 了,结果场景 A 中的引用相同 SpriteFrame 的 Sprite 也受到牵连了。。。。为了解决这个问题,我尝试不修改 SpriteFrame,值修改 Sprite 的 width 和 height,然而 Sprite 的 width 是被校正了,但 SpriteFrame 却依然是被完整地绘制出来的。。。

— Begin quote from ____

引用第32楼bestfighternb于2016-04-05 22:42发表的 :
疑问:所有场景的 Sprite 现在都是和 SpriteFrame 挂钩的吧?遇到了一个问题,场景A 中有个 test.png 的 Sprite,场景 B 中也有个 test.png 的 Sprite,然后我在场景 B 中将 test.png 的 Sprite 的 spriteFrame 给修改了一下,譬如说原来是 w,h,我改成 w* 0.5f, h 了,结果场景 A 中的引用相同 SpriteFrame 的 Sprite 也受到牵连了。。。。为了解决这个问题,我尝试不修改 SpriteFrame,值修改 Sprite 的 width 和 height,然而 Sprite 的 width 是被校正了,但 SpriteFrame 却依然是被完整地绘制出来的。。。
http://www.cocoachina.com/bbs/job.php?action=topost&tid=457649&pid=1534344

— End quote

已解决,感谢 Jare 的解答!

30楼问题求解答。(字数补丁)

请问发布的WEB 在 IE9、IE10 是不支援吗?

画面无法呈现,诡异的是IE10缩小再放大画面就出现了

请问现在有A,B两个场景,从A场景使用cc.loadScene(B),然后再使用cc.loadScene(A)报错提示场景已加载,不能再次加载,应该怎么修改呢 小白一枚,初学中,万分感谢

我想找到creator工程的index.html,里面要写一些游戏事件接口,但貌似调试的时候是临时创建的,是不是只有发布之后才能生成那个文件,

动画编辑器编辑动画为什么最长只有4s(240帧)

1.03版本无法安装,win 10

Q: properties里面可以定义对象数组嘛?
A: 可以,根据文档 http://www.cocos.com/docs/creator/scripting/class.html
当声明属性是一个数组时,可以在声明处填写他们的类型或构造函数来完成声明,如:

    properties: {
        any: [],      // 不定义具体类型的数组
        bools: [cc.Boolean],
        strings: [cc.String],
        floats: [cc.Float],
        ints: [cc.Integer],
        
        values: [cc.Vec2],
        nodes: [cc.Node],
        frames: [cc.SpriteFrame],
    }

或者

properties: {
    names: {
        default: [],
        type: [cc.String]   // 用 type 指定数组的每个元素都是字符串类型
    },

    enemies: {
        default: [],
        type: [cc.Node]     // type 同样写成数组,提高代码可读性
    },
}

Q: 真机或模拟器运行时报错:“Mutating the [[Prototype]] of an object will cause your code to run very slowly; instead create the object with the correct initial [[Prototype]] value using Object.create”
A: 这是由于某些第三方库,或者项目中用到了 ES2015(ES6)的类继承语法,而 Babel 在转义这个语法时会调用到 SpiderMonkey 不太优化 API,所以 SpiderMonkey 给出了这个报错。

Q: 如何在构建好项目后执行自定义脚本?
A: 可以参照 https://github.com/fireball-packages/cocos-package 监视 editor:build-finished 消息,当 build 完成时执行自定义操作。

还有一个微信横屏游戏的bug 麻烦请开发团队留意一下 http://forum.cocos.com/t/topic/39937

有一个小建议,Layout的排版属性,可不可以加一个居中排版。

能否举个例子,什么是居中排版?

斗鱼直播的视频 能不能放到网上, 让下载到, 赶不上直播, 就看不成了

不用了~ 可以实现的,之前是我对API不太熟。谢谢

有道理.
我见到你们有做 VS Code 的 代码智能提醒和补全.

因为我喜欢 JetBrains 家的 IDE. 就在想如果有 JetBrains IDE 上的补全提示就好了.

我进行了一些尝试:

  1. 发现补全的机制主要是通过 creator.d.ts 文件. 应该是一个 TypeScript 文件. 里面有函数的声明,函数文档. 好比是头文件的功能. VS Code 应该能识别. 然后我在项目开启了 TypeScript 支持. 让 IDE 编译 creator.d.ts 文件.
    这样 IDE 应该可以以 JS 库的形式提供补全支持.

  2. 刚开始开启编译时不行, 今天重启一下发现有补全了.

有些没有 比如上面的 cc.random0To1 这个函数,提示找不到, 我在 creator.d.ts 中搜索了也没有找到, 另外 audioEngine.playEffect 也找不到.

虽然上面有一定补全了. 应该算不错了. 不过跟 VS Code 的还差一些. 就是函数的文档没有显示出来.

如果有知道解决方法的话, 还请给予指点.

Android编译报错,failed to run project. the log file path