Merge pull request #13962 from ZhangMenghe/v3-scrollView

[ci skip] Testcase for multiple items in scrollView
This commit is contained in:
pandamicro 2015-09-24 09:35:05 +08:00
commit 149775ea10
2 changed files with 131 additions and 0 deletions

View File

@ -471,6 +471,12 @@
func: function () { func: function () {
return new UIScrollViewDisableTest(); return new UIScrollViewDisableTest();
} }
},
{
title:"UIScrollView Multiple Items Test",
func: function () {
return new UIScrollViewTest_Vertical_Multiple();
}
} }
], ],
"UIPageView": [ "UIPageView": [

View File

@ -479,3 +479,128 @@ var UIScrollViewDisableTest = UIMainLayer.extend({
return false; return false;
} }
}); });
var UIScrollViewTest_Vertical_Multiple = UIMainLayer.extend({
_scrollView:null,
_itemNumber:1000,
init: function () {
if (this._super()) {
var widgetSize = this._widget.getContentSize();
//init text
this._topDisplayLabel.setString("Move by vertical direction");
this._topDisplayLabel.x = widgetSize.width / 2.0;
this._topDisplayLabel.y = widgetSize.height / 2.0 + this._topDisplayLabel.height * 1.5;
this._bottomDisplayLabel.setString("Compare drawCalls and FPS with Previous Version");
this._bottomDisplayLabel.setFontSize(25);
this._bottomDisplayLabel.x = widgetSize.width / 2;
this._bottomDisplayLabel.y = widgetSize.height / 2 - this._bottomDisplayLabel.height * 4;
var background = this._widget.getChildByName("background_Panel");
// Create the scrollview
var scrollView = this._scrollView = new ccui.ScrollView();
scrollView.setDirection(ccui.ScrollView.DIR_VERTICAL);
scrollView.setTouchEnabled(true);
scrollView.setContentSize(cc.size(280, 150));
scrollView.x = (widgetSize.width - background.width) / 2 + (background.width - scrollView.width) / 2;
scrollView.y = (widgetSize.height - background.height) / 2 + (background.height - scrollView.height) / 2;
this._mainNode.addChild(scrollView);
var labelText = new cc.LabelTTF("Texts", "Arial", 25);
var labelButton = new cc.LabelTTF("Buttons", "Arial", 25);
var labelS9sprite = new cc.LabelTTF("s9Sprites", "Arial", 25);
var menuItem1 = new cc.MenuItemLabel(labelText, this.drawTexts, this);
var menuItem2 = new cc.MenuItemLabel(labelButton, this.drawButtons, this, false);
var menuItem3 = new cc.MenuItemLabel(labelS9sprite, this.drawS9Buttons, this);
var menu = new cc.Menu(menuItem1, menuItem2, menuItem3);
menu.x = 0;
menu.y = 0;
menuItem1.x = menuItem2.x = menuItem3.x = 120;
menuItem1.y = 150;
menuItem2.y = 200;
menuItem3.y = 250;
this.addChild(menu, 1);
this.drawTexts();
return true;
}
return false;
},
drawTexts:function() {
var scrollView = this._scrollView;
var n = this._itemNumber/2;
if(scrollView.getChildren())
scrollView.removeAllChildren(true);
var Texts = [];
var start = new ccui.Text("---start---", "Thonburi", 10);
var innerWidth = scrollView.width;
var innerHeight = n * start.height;
scrollView.setInnerContainerSize(cc.size(innerWidth, innerHeight));
start.x = innerWidth / 2;
start.y = scrollView.getInnerContainerSize().height - start.height / 2;
Texts[0] = start;
scrollView.addChild(start);
for (var i = 1; i < n; i++) {
var text = new ccui.Text("This is a test label: " + i, "Thonburi", 10);
text.x = innerWidth / 2;
text.y = Texts[i - 1].getBottomBoundary() - text.height / 2;
Texts[i] = text;
scrollView.addChild(Texts[i]);
}
},
drawButtons:function() {
var scrollView = this._scrollView;
var n = this._itemNumber/2;
if(scrollView.getChildren())
scrollView.removeAllChildren(true);
var Buttons = [];
var innerWidth = scrollView.width;
for (var j = 0; j < n; j++) {
var button = new ccui.Button();
button.setTouchEnabled(true);
button.loadTextures("ccs-res/cocosui/animationbuttonnormal.png", "ccs-res/cocosui/animationbuttonpressed.png", "");
button.x = innerWidth / 2;
if(j===0) {
var innerHeight = n * button.height;
scrollView.setInnerContainerSize(cc.size(innerWidth, innerHeight));
button.y =scrollView.getInnerContainerSize().height - button.height / 2;
}
else
button.y =Buttons[j - 1].getBottomBoundary() - button.height / 2;
Buttons.push(button);
scrollView.addChild(button);
}
},
drawS9Buttons: function() {
var scrollView = this._scrollView;
var n = this._itemNumber;
if(scrollView.getChildren())
scrollView.removeAllChildren(true);
var Buttons = [];
var innerWidth = scrollView.width;
for (var j = 0; j < n; j++) {
var button_scale9 = new ccui.Button();
button_scale9.setTouchEnabled(true);
button_scale9.setScale9Enabled(true);
button_scale9.loadTextures("ccs-res/cocosui/button.png", "ccs-res/cocosui/buttonHighlighted.png", "");
button_scale9.width = 100;
button_scale9.height = 32;
button_scale9.x = innerWidth / 2;
if(j === 0) {
var innerHeight = n * 32;
scrollView.setInnerContainerSize(cc.size(innerWidth, innerHeight));
button_scale9.y = scrollView.getInnerContainerSize().height - button_scale9.height / 2;
}
else
button_scale9.y = Buttons[j-1].getBottomBoundary() - button_scale9.height / 2;
Buttons.push(button_scale9);
scrollView.addChild(button_scale9);
}
}
});