2017-09-07 6 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); 

La position du bouton commence au milieu.Cocos2dx - js - ScrollView - Impossible de le positionner

enter image description here

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

si je change la position y, il donne un aspect différent.

enter image description here

Répondre

0

Je pense que vous faites la même erreur que je faisais quand je commencé à travailler avec cocos2d-x. J'étais sous l'hypothèse que lorsque vous changez le point d'ancrage d'un objet, cela affecte également le positionnement de ses enfants, mais ce n'est pas le cas avec cocos2d-x. La modification de la position d'ancrage affecte uniquement l'objet lui-même. Ses enfants sont toujours positionnés dans le coin inférieur gauche de l'objet. Donc si vous deviez laisser le point d'ancrage des vues de défilement à (0,0) et sa position à (0,0), vous obtiendriez exactement le même résultat.

En outre, je devrais souligner quelques points au sujet des vues de défilement.

  • Lorsque vous appelez addChild sur une vue de défilement, il les ajoute au récipient intérieur ne la défilante lui-même pour que les enfants (c.-à-bouton dans votre cas) sont maintenant positionnés à partir du coin inférieur gauche du récipient intérieur . Le conteneur interne commence à défiler vers le haut de sorte que dans votre cas, la moitié du conteneur interne se trouve sous l'écran.

Espérons que cela aide!