cocos2d-x lua 使用ListView
cocos2d-x lua 使用ListView
version: cocos2d-x 3.6
本文主要讲述:使用Cocos Studio创建ListView,和列表项的模板,代码中通过模板创建列表的每一项,并替换其中的图片文字等。
1. 加载Cocos Studio编辑好的资源
-- //cocos studio 中资源的名字
M.srcLayer = {
["listView"] = "list_view",
["btnFriends"] = "button_friends",
["btnAround"] = "button_around",
}
M.srcListItem = {
["bg"] = "image_bg",
["img"] = "image_head",
["name"] = "lable_name",
["meter"] = "lable_meter",
}
function M:loadLayout()
if self.m_resNode then
self.m_resNode:removeSelf()
self.m_resNode = nil
end
self.m_resNode = cc.CSLoader:createNode("ui/layer_test_listview.csb") -- //load your layout csb
assert(self.m_resNode, string.format("ViewBase:createResourceNode() - load resouce node from file \"%s\" failed", resourceFilename))
self:addChild(self.m_resNode)
local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
end
2. 更新ListView的每一项
function M:refreshListView()
local listView = self.m_resNode:getChildByName(M.srcLayer.listView)
assert(listView,"")
listView:removeAllChildren()
local friendList = {
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
{["id"]="1234567890", ["name"]="testName", ["picture"]="test.png"},
}
for idx, oneFriend in pairs(friendList) do
-- //加载模板项
local oneItem = cc.CSLoader:createNode("ui/layer_test_listview_item.csb")
local imgBg = oneItem:getChildByName(M.srcListItem.bg)
local imgHead = oneItem:getChildByName(M.srcListItem.img)
local lableName = oneItem:getChildByName(M.srcListItem.name)
local lableMeter = oneItem:getChildByName(M.srcListItem.meter)
-- //reset
--imgHead:initWithFileName(oneFriend.picture) --//imgHead是精灵类Sprite
lableName:setString(friendInfo.name)
--lableMeter:setString(tostring(oneFriend.meter))
--//create layout
local listItemLayout = ccui.Layout:create()
listItemLayout:setContentSize(imgBg:getContentSize())
listItemLayout:addChild(oneItem)
oneItem:setPosition(cc.p(listItemLayout:getContentSize().width / 2.0, listItemLayout:getContentSize().height / 2.0))
listItemLayout:setTag(idx)
listView:insertCustomItem(listItemLayout, 0)
end
end
3. 其他
- 如果想在代码里面创建listview和它的每一个列表项,可直接参照lua test里面的代码
- 注意编辑cocos studio资源的时候不要去拖动每一个空间的4个顶点去缩放它
- 使用page view 和 table view 类似
cocos2d-x lua 使用ListView的更多相关文章
- 采用cocos2d-x lua 的listview 实现pageview的翻页效果之上下翻页效果
--翻页滚动效果local function fnScrollViewScrolling( sender,eventType) -- body if eventType == 10 the ...
- lua 创建listview
只要是新的聊天对象就创建一个新的listview local name = tolua.cast(UIHelper:seekWidgetByName(self.nameItem, "name ...
- 使用cocos2d脚本生成lua绑定
这几天要老大要求把DragonBones移到cocos2dx 3.0 里边,并且绑定lua使用接口.因为刚学lua,使用的引擎也刚从2.2改为3.0,各种不熟悉,折腾了好几天才弄完,有空了总结一下 这 ...
- 《Cocos2d-x实战 Lua卷》上线了
感谢大家一直以来的支持!各大商店均开始销售:京东:http://item.jd.com/11659697.html当当:http://product.dangdang.com/23659810.htm ...
- 【转】cocos2d-x Lua
Call custom c++ from Lua cocos2d-x lua binds c++ class, class functions ,enum and some global functi ...
- Cocos2d-x3.0下一个 Lua与C++打电话给对方
这里谈下Lua与C++如何实现相互通话 原来的连接:http://blog.csdn.net/qqmcy/article/details/26052771 DJLCData.h 实现类 // // D ...
- cocos2dx 3.3 C++工程添加lua支持
准备工作: 1. 拷贝cocos2d-x-3.3rc0\external\lua整个文件夹到项目中(如myProject\cocos2d\external\lua) 2. 拷贝cocos2d-x-3. ...
- xcode 运行 lua版本崩溃 解决方案
问题描述:运行到LuaStack::init() 崩溃 原因: luajit不支持arm64 解决方案:编译luajit64位静态库 a.可以直接下载别人编译好的库,然后直接覆盖cocos2d\ext ...
- 游戏人生(一),我的lua之旅:那些坑爹的CCBReaderLoad
首先,我们说说这个CCBReaderLoad. 这个脚本是cocos2dx自带的一个lua+cocosbuilder 的工具,详细功能呐,往下看. 先来看下我遇到的一个问题: ----美工给了我一个. ...
随机推荐
- global & nonlocal
name = "A" def test(): name = "B" def test2(): global name # global 指的是拿到的是全局的变量 ...
- Telnet连接Win7系统被拒绝的原因及解决方法
有时要与计算机进行远程连接,会用到telnet.win7中telnet默认是没有开启的,所以这时连接会连接失败,其失败提示如下: 正在连接192.168.100.103...无法打开到主机的连接. 在 ...
- How Tomcat Works(四)
Servlet容器有两个主要的模块,即连接器(connector)与容器(container),本文接下来创建一个连接器来增强前面文章中的应用程序的功能,以一种更优雅的方式来创建request对象和r ...
- jsp转发action的问题找不到acton
-----------------------------jsp转发action的问题找不到acton------------------------------------------- jsp: ...
- C#实现XML文件数据库存储
C#实现文件数据库 http://www.cnblogs.com/gaochundong/archive/2013/04/24/csharp_file_database.html#3100076 应用 ...
- Codeforces Round #338 (Div. 2) B. Longtail Hedgehog dp
B. Longtail Hedgehog 题目连接: http://www.codeforces.com/contest/615/problem/B Description This Christma ...
- C#中使用SQLite数据库简介(上)
[SQLite数据库] SQLite是一个开源的轻量级的桌面型数据库,它将几乎所有数据库要素(包括定义.表.索引和数据本身)都保存在一个单一的文件中.SQLite用C编写实现,它在内存消耗.文件体积. ...
- 绝对好文:.NET程序性能的基本要领
Bill Chiles(Roslyn编译器的程序经理)写了一篇文章<Essential Performance Facts and .NET Framework Tips>,知名博主寒江独 ...
- 【JavaScript】前端开发框架三剑客—AngularJS VS. Backone.js VS.Ember.js
摘要:透过对Github,StackOverflow,YouTube等社区进行数据收集后可知,AngularJS在各大主流社区中都是最受欢迎的,Backbone.js与Ember.js则不相伯仲.本文 ...
- 【JavsScript】作用域链
阿里巴巴广招前端.Java.测试.算法人才,只要你有一技之长,精通于某项领域,无学历要求,都可以来试试,有兴趣的联系luyong.sunly@alibaba-inc.com