Cocos Creator v1.6.2 内测版发布帖(更新 beta.3)

非常感谢 连上了 用的38版本的firefox 设置断点反应

麻烦问一下,升级1.62了,pomelo导入就报错了,有大神指导原因吗?
index.js:23 Uncaught TypeError: Cannot set property ‘EventEmitter’ of undefined
at __define (index.js:23)
at Object.func (index.js:37)
at Object.cc.require (modular.js:64)
at __require (GameManager.js:1)
at __define (GameManager.js:2)
at Object.func (GameManager.js:29)
at Object.run (modular.js:85)
at Object.onStart (boot.js:327)
at CCLoader. (CCGame.js:403)
at CCLoader.js:241

你1.7bugly怎么弄的?

没什么区别的,后面有时间我搞个分享

buglyAgent都得改,好多类型都改了

坐等bugly分享

直接用bugly 导出jsb js 就搞定了

没懂 啥意思? 讲讲呗

1.7 jsb 自动绑定 我做了 代码在公司 找时间分享出来

大侠 求分享!!

我发现了一个 cocos2d-x 3.15中的spidermonkey的虚拟机的一个关于arguments.length的bug, 明明我传入的是2个参数,结果取出argument.length为3。感觉这个都能出问题, spidermonkey到底靠不靠谱啊。这是逼着我放弃cocos2d-x吗?好不容易下定决心不纠结,用cocos2d-x。
你们有碰到过类似问题吗? creator 1.6.2 的spidermonkey不知道有没有此类问题。

还能有这种bug。。。
3.15中用的SpiderMonkey是从firefox33拔过来的,
你可以试试creator1.6,已经升级到firefox52的版本。

准备尝试中

最近把 1.6.2 beta3 里的 SpiderMonkey v52 手动移到了 cocos2d-x 3.12 中,现在有一点问题,借楼问一下:

http://forum.cocos.com/t/spidermonkey-v52/51198

求分享!!

@panda

安卓 模拟器 苹果

var xx= 0;
this.schedule(function(){

        xx++;
        cc.log(xx);


    },0.001);

    this.unscheduleAllCallbacks();  //无效呢

求助楼主,遇到iOS websocket无法连接 ,已发帖:http://forum.cocos.com/t/1-6-2beta3-ios-websocket/52680

模拟器无法使用 d3dx9_39.dll、d3dx9_40.dll、d3dx9_41.dll、d3dx9_42.dll、d3dx9_43.dll、xinput1_3.dl

我这一会的功夫,就发现creator 1.6.2引擎的JSB绑定层两个BUG,反倒2dx里面没有。这…?
一个是下面的C++代码,回调函数没有把事件对象传入,JS::HandleValueArray::empty()应该是错误的

bool js_EventListenerCustom_create(JSContext *cx, uint32_t argc, JS::Value *vp)
{
    JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
    bool ok = true;
    if (argc == 2) {
        std::string arg0;
        std::function<void (cocos2d::EventCustom *)> arg1;
        JSFunctionWrapper *wrapper = nullptr;
        ok &= jsval_to_std_string(cx, args.get(0), &arg0);
        do {
            if(JS_TypeOfValue(cx, args.get(1)) == JSTYPE_FUNCTION)
            {
                JS::RootedObject jstarget(cx, args.thisv().toObjectOrNull());
                JS::RootedObject jsfunc(cx, args.get(1).toObjectOrNull());
                std::shared_ptr<JSFunctionWrapper> func(new JSFunctionWrapper(cx, jstarget, jsfunc));
                wrapper = func.get();
                auto lambda = [=](EventCustom* event) -> void {
                    JS::RootedValue rval(cx);
                    bool succeed = func->invoke(JS::HandleValueArray::empty(), &rval);
                    if (!succeed && JS_IsExceptionPending(cx)) {
                        handlePendingException(cx);
                    }
                };
                arg1 = lambda;
            }
            else
            {
                arg1 = nullptr;
            }
        } while(0)
        ;
        JSB_PRECONDITION2(ok, cx, false, "js_cocos2dx_EventListenerCustom_create : Error processing arguments");

        auto ret = EventListenerCustom::create(arg0, arg1);
        JS::RootedObject jslistener(cx);
        js_get_or_create_jsobject<EventListenerCustom>(cx, ret, &jslistener);
        JS::RootedValue jsret(cx, JS::ObjectOrNullValue(jslistener));
        if (wrapper)
        {
            wrapper->setOwner(cx, jslistener);
        }
        args.rval().set(jsret);
        return true;
    }
    JS_ReportErrorUTF8(cx, "js_cocos2dx_EventListenerCustom_create : wrong number of arguments");
    return false;
}

另一个是如下的脚本代码, 后面的两个create需要加return吧:

cc.callFunc = function (selector, target, data) {
    var callback = selector;
    if (data !== undefined) {
        callback = function (sender) {
            selector.call(this, sender, data);
        };
    }
    if (target !== undefined) {
        cc.CallFunc.create(callback);
    }
    else {
        cc.CallFunc.create(callback, target);
    }
}

回答你cc.callFunc的问题:
你发现的确没错,lite仓库的cc.callFunc的确有问题。但是engine仓库已经又重新赋值了,所以没有产生问题。

https://github.com/cocos-creator/engine/blob/14c7194b2e9f07ed95c6ebccf6a6f71505235fa0/jsb/jsb-action.js#L247