Cocos2dx - js - ScrollView - 无法定位它

Cocos2dx - js - ScrollView - Unable to position it

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);

按钮的位置从中间开始。

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

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

我认为你犯了我刚开始使用 cocos2d-x 时犯的同样的错误。我假设当您更改 object 的锚点时,它也会影响其 children 的定位,但是,cocos2d-x 并非如此。更改锚点位置只会影响 object 本身。它的 children 始终位于 object 的 bottom-left 角。

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

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

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

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

希望对您有所帮助!