2017-09-07 10 views
0
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); 

버튼의 위치가 중간에 시작됩니다. Cocos2dx - js - ScrollView - 위치를 지정할 수 없습니다.

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

제가 y 위치를 변경하는 경우

enter image description here

, 그것은 다른 모습을 제공한다.

enter image description here

답변

0

난 당신이 내가 먼저적인 Cocos2D-X 작업을 시작했을 때 내가 만든 같은 실수를하고있다 생각합니다. 저는 여러분이 객체의 앵커 포인트를 변경할 때 그것도 자식의 위치에 영향을 미친다는 가정하에있었습니다 만, 이것은 cocos2d-x의 경우가 아닙니다. 앵커 위치를 변경하면 객체 자체에만 영향을 미칩니다. 그 아이는 항상 오브젝트의 좌하 구석으로부터 배치됩니다.

그래서 스크롤 뷰 앵커 포인트를 (0,0)에두고 그 위치를 (0,0)으로두면 똑같은 결과를 얻을 수 있습니다.

또한 스크롤보기에 대해 몇 가지 유의해야합니다.

  • 당신은 스크롤 뷰에 따라서 addChild 호출하면 지금 내부 용기의 왼쪽 하단에서 배치되고있는 내부 용기 NOT 스크롤 뷰 자체 아이들 때문에 (귀하의 경우 즉, 버튼)에 추가 .

  • 내부 컨테이너가 상단으로 스크롤되기 시작하므로 내부 컨테이너의 절반이 화면 아래에 있습니다.

희망이 있습니다.