【问题标题】:Cocos2dx - js - ScrollView - Unable to position itCocos2dx - js - ScrollView - 无法定位
【发布时间】:2017-09-07 13:57:00
【问题描述】:
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 cocos2d-js


    【解决方案1】:

    我认为你犯的错误与我第一次开始使用 cocos2d-x 时所犯的错误相同。我假设当您更改对象的锚点时,它也会影响其子对象的定位,但是 cocos2d-x 并非如此。更改锚点位置只会影响对象本身。其子项始终位于对象的左下角。

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

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

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

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多