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位置,它会给出不同的外观。
答案 0 :(得分:0)
我认为你犯的是我第一次使用cocos2d-x时犯的错误。我假设当你改变一个对象的锚点时它也会影响它的子节点的位置,但是,cocos2d-x不是这种情况。更改锚点位置只会影响对象本身。它的孩子总是位于物体的左下角。
因此,如果您将滚动视图锚点保留在(0,0)并将其位置保持在(0,0),您将获得完全相同的结果。
另外,我应该指出一些关于滚动视图的事情。
当您在滚动视图上调用addChild时,它会将它们添加到内部容器而不是滚动视图本身,因此子项(即您的案例中的按钮)现在位于内部容器的左下角。
内部容器开始滚动到顶部,因此在您的情况下,内部容器的一半位于屏幕下方。
希望这有帮助!