.cpp文件:
#include "HelloWorldScene.h" #include "ui/CocosGUI.h" #include "an01.h" USING_NS_CC; using namespace cocos2d::ui; const char* font_UIListViewTest = "fonts/Marker Felt.ttf"; Scene* HelloWorld::createScene() { // 'scene' is an autorelease object auto scene = Scene::create(); // 'layer' is an autorelease object auto layer = HelloWorld::create(); // add layer as a child to scene scene->addChild(layer); // return the scene return scene; } // on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); ///////////////////////////// // 2. add a menu item with "X" image, which is clicked to quit the program // you may modify it. // add a "close" icon to exit the progress. it's an autorelease object auto closeItem = MenuItemImage::create( "CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 , origin.y + closeItem->getContentSize().height/2)); // create menu, it's an autorelease object auto menu = Menu::create(closeItem, NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu, 1); ///////////////////////////// // 3. add your codes below... // add a label shows "Hello World" // create and initialize a label auto label = Label::createWithTTF("Hello World", "fonts/Marker Felt.ttf", 24); // position the label on the center of the screen label->setPosition(Vec2(origin.x + visibleSize.width/2, origin.y + visibleSize.height - label->getContentSize().height)); // add the label as a child to this layer this->addChild(label, 1); // add "HelloWorld" splash screen" // auto Sprite = Sprite::create("HelloWorld.png"); // position the sprite on the center of the screen //Sprite->setPosition(Vec2(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)); // add the sprite as a child to this layer // this->addChild(Sprite, 0); //Size widgetSize = _widget->getContentSize(); //_displayValueLabel = Text::create("Move by horizontal direction", "fonts/Marker Felt.ttf", 32); //_displayValueLabel->setAnchorPoint(Vec2(0.5f, -1.0f)); //_displayValueLabel->setPosition(Vec2(widgetSize.width / 2.0f, // widgetSize.height / 2.0f //+ _displayValueLabel->getContentSize().height * 1.5f)); //_uiLayer->addChild(_displayValueLabel); //Text* alert = Text::create("ListView horizontal", "fonts/Marker Felt.ttf", 30); //alert->setColor(Color3B(159, 168, 176)); //alert->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height / 2.0f - alert->getContentSize().height * 3.075f)); //addChild(alert); Layout* root = static_cast<Layout*>(getChildByTag(81)); //Layout* background = static_cast<Layout*>(root->getChildByName("background_Panel")); //Size backgroundSize = background->getContentSize(); // create list view ex data for (int i = 0; i < 20; ++i) { std::string ccstr = StringUtils::format("listview_item_%d", i); _array.push_back(ccstr); } // Create the list view ex ListView* listView = ListView::create(); // set list view ex direction listView->setDirection(ui::ScrollView::Direction::HORIZONTAL); listView->setTouchEnabled(true); listView->setBounceEnabled(true); listView->setBackGroundImage("cocosui/green_edit.png"); listView->setBackGroundImageScale9Enabled(true); listView->setContentSize(Size(240, 130)); listView->setScale(1.5f); listView->setAnchorPoint(Vec2(0.450f, 0.50f)); listView->setPosition(Vec2(visibleSize.width/ 2.0f, visibleSize.height / 2.0f )); //listView->addEventListener((ui::ListView::ccListViewCallback)CC_CALLBACK_2(HelloWorld::selectedItemEvent, this)); listView->setScrollBarPositionFromCorner(Vec2(7, 7)); addChild(listView); return true; } void HelloWorld::menuCloseCallback(Ref* pSender) { Director::getInstance()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) exit(0); #endif }