Cocos2dx - js - ScrollView - 无法定位它

时间:2017-09-07 13:57:00

标签: cocos2d-x cocos2d-js

var size = cc.winSize;
    var scrollView = new ccui.ScrollView();
    scrollView.setDirection(ccui.ScrollView.DIR_VERTICAL);
    scrollView.setTouchEnabled(true);
    scrollView.setBounceEnabled(true);
    scrollView.setBackGroundColorType(ccui.Layout.BG_COLOR_SOLID);
    scrollView.setBackGroundColor(cc.color(255,255,255));
    //scrollView.setBackGroundImageScale9Enabled(true);
    scrollView.setContentSize(cc.size(720, 1280));
    scrollView.setInnerContainerSize(cc.size(720, (1280*2)));
    scrollView.setAnchorPoint(cc.p(0.5, 0.5));
    scrollView.setPosition(cc.p(360, 640));
    this.addChild(scrollView);

按钮的位置从中间开始。

enter image description here

        scrollView.setPosition(cc.p(360, 0));

如果我改变y位置,它会给出不同的外观。

enter image description here

1 个答案:

答案 0 :(得分:0)

我认为你犯的是我第一次使用cocos2d-x时犯的错误。我假设当你改变一个对象的锚点时它也会影响它的子节点的位置,但是,cocos2d-x不是这种情况。更改锚点位置只会影响对象本身。它的孩子总是位于物体的左下角。

因此,如果您将滚动视图锚点保留在(0,0)并将其位置保持在(0,0),您将获得完全相同的结果。

另外,我应该指出一些关于滚动视图的事情。

  • 当您在滚动视图上调用addChild时,它会将它们添加到内部容器而不是滚动视图本身,因此子项(即您的案例中的按钮)现在位于内部容器的左下角。

  • 内部容器开始滚动到顶部,因此在您的情况下,内部容器的一半位于屏幕下方。

希望这有帮助!