http://blog.csdn.net/allenice1/article/details/7747425

分类: javascript cocos2d-html52012-07-14
20:08 3005人阅读 评论(0) 收藏 举报

今天学习了action,可是练习cc.Sequence.create的时候。发现了问题。

cc.Sequence.create能够传一个action的数组进去,可是我试了非常多次,还是没成功。无奈之下,我去看了源码。

一看。原来是推断參数是否是数组的语句错了

[javascript] view
plain
copy

  1. cc.Sequence.create = function (/*Multiple Arguments*/tempArray) {
  2. var paraArray = (typeof tempArray == "Array") ?

    tempArray : arguments;

  3. var prev = paraArray[0];
  4. for (var i = 1; i < paraArray.length; i++) {
  5. if (paraArray[i] != null) {
  6. prev = cc.Sequence._actionOneTwo(prev, paraArray[i]);
  7. }
  8. }
  9. return prev;
  10. };

类型推断没有“Array”的,所以传数组进去的话,还是会当成传一个action进去,而不是一个action数组。

解决的方法就是替换推断參数是否是数组那一句,可是我们不能直接改cocos2d的源码。

我的解决的方法是新建一个文件,重写这种方法,然后载入cocos2d的库后,再载入我重写那个方法的文件。

下面是重写的代码:

Sequence.js

[javascript] view
plain
copy

  1. cc.Sequence.create = function (/*Multiple Arguments*/tempArray) {
  2. var paraArray = (isArray(tempArray)) ? tempArray : arguments;
  3. var prev = paraArray[0];
  4. for (var i = 1; i < paraArray.length; i++) {
  5. if (paraArray[i] != null) {
  6. prev = cc.Sequence._actionOneTwo(prev, paraArray[i]);
  7. }
  8. }
  9. return prev;
  10. };
  11. function isArray (obj) {
  12. return Object.prototype.toString.call(obj) === '[object Array]';
  13. }

注意载入的顺序:

[javascript] view
plain
copy

  1. cc.loadjs('lib/Cocos2d-html5-canvasmenu-min.js');
  2. cc.loadjs('lib/Sequence.js');

cocos2d-html5学习笔记(六)--alpha2中cc.Sequence.create中的bug的更多相关文章

  1. HTML5学习笔记<六>: HTML5框架, 背景和实体

    HTML5框架 1. 框架标签(frame): 框架对于页面的设计有着很大的作用 2. 框架集标签(<frameset>): 框架集标签定义如何将窗口分割为框架 每个frameset定义一 ...

  2. HTML5学习笔记(二十):JavaScript中的标准对象

    这里提到的标准对象指ECMAScript中定义的对象,无论JavaScript运行那种环境(浏览器.Node.js)下都存在的对象. typeof 在JavaScript的世界里,一切都是对象. 但是 ...

  3. # go微服务框架kratos学习笔记六(kratos 服务发现 discovery)

    目录 go微服务框架kratos学习笔记六(kratos 服务发现 discovery) http api register 服务注册 fetch 获取实例 fetchs 批量获取实例 polls 批 ...

  4. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  5. html5学习笔记一

    HTML5学习笔记 <video>标记:定义视频,Ogg.MPEG4.WebM三种格式 <video src=”movie.ogg”  controls=”controls”> ...

  6. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  7. Typescript 学习笔记六:接口

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  8. python3.4学习笔记(六) 常用快捷键使用技巧,持续更新

    python3.4学习笔记(六) 常用快捷键使用技巧,持续更新 安装IDLE后鼠标右键点击*.py 文件,可以看到Edit with IDLE 选择这个可以直接打开编辑器.IDLE默认不能显示行号,使 ...

  9. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

随机推荐

  1. linux下使用crontab创建定时任务

    在linux中启动crontab服务: /etc/init.d/crond start crontab的命令格式 crontab -l 显示当前的crontab 文件(默认编写的crontab文件会保 ...

  2. POJ 1755 Triathlon (半平面交)

    Triathlon Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4733   Accepted: 1166 Descrip ...

  3. hdu 2176 取石子游戏

    http://acm.hdu.edu.cn/showproblem.php?pid=2176 提示:尼姆博弈,异或 #include <iostream> #include <cst ...

  4. Jacob调用COM组件总结,实例

    转自:http://blog.csdn.net/whw6_faye/article/details/5418506 最近做了一个Java Jacob调用COM组件的东西,其中遇到了不少问题,现在把经验 ...

  5. 做考试系统用到的关于onbeforeunload一些兼容性问题

    最近做考试系统,一些效果存在一些兼容性问题,尤其是ie6,本人js不是很好,通过查资料解决了这些问题,现总结下: 关于onbeforeunload问题: 考试时离开页面需要提示,但是直接用此方法或on ...

  6. Informatica 常用组件Source Qualifier之六 外部联接

    可以使用源限定符和应用程序源限定符转换在相同的数据库中执行两个源的外部联接.当 PowerCenter 执行外部联接时,它将返回其中一个源表的所有行和另一个源表中匹配联接条件的行. 如果您需要联接两个 ...

  7. ansible安装文档

    一.系统环境 [root@ansible ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@ansible ~]# uname ...

  8. 直播 背景 技术体系 乐视云直播Demo

    背景 最近工作需要做一款直播APP,恩是的,从RTMP协议的实现开始到处理服务器高并发.负载均衡.客户端播放器实现等等等..... 估计全部写完我也到而立之年了吧...... BOSS们估计也是发现了 ...

  9. 解决 PowerDesigner 错误 The generation has been cancelled because errors have been found by the check model.

    在通过概念数据模型生成为物理数据模型时出现错误“The generation has been cancelled because errors have been found by the chec ...

  10. C#高级编程五十七天----位数组

    位数组 假设须要处理非常多位,就能够使用BitArray类和BitVector32.BitArray位于命名空间System.Collections中. BitVector32位于命名空间System ...