• cocos2d-html5学习笔记(六)--alpha2中cc.Sequence.create中的bug


     

    cocos2d-html5学习笔记(六)--alpha2中cc.Sequence.create中的bug

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

    分类: javascript cocos2d-html5 3005人阅读 评论(0) 收藏 举报

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

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

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

    [javascript] view plaincopy
    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.   
    11. };  

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

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

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

    下面是重写的代码:

    Sequence.js

    [javascript] view plaincopy
    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. };  
    12.   
    13. function isArray (obj) {  
    14.      return Object.prototype.toString.call(obj) === '[object Array]';   
    15. }  

    注意载入的顺序:

    [javascript] view plaincopy
    1. cc.loadjs('lib/Cocos2d-html5-canvasmenu-min.js');  
    2. cc.loadjs('lib/Sequence.js');  
  • 相关阅读:
    Django 常用过滤器
    计算机概论(2)
    计算机概论(1)
    Django URL视图
    模板标签之if、for
    Django 渲染模板、路径配置、变量使用。

    字符串用法
    hashlib模块
    小列
  • 原文地址:https://www.cnblogs.com/yutingliuyl/p/6722398.html
Copyright © 2020-2023  润新知