フレームごとにitemを作成
6894 ワード
--
function UIBagController:onLoadTest()
self.goodsprop = DB.getTable("goodsprop");
local itemAmount = 50;
--
local nAmount = 0;
if itemAmount % self.m_nRColumn == 0 then
nAmount = math.modf( itemAmount / self.m_nRColumn );
else
nAmount = math.modf( itemAmount / self.m_nRColumn + 1 );
end
local nHeigh = nAmount * self.m_nHeigh;
self.m_nInnerHeigh = nHeigh;
local size = self.scrollPanel:getInnerContainerSize();
if nHeigh < size.height then
nHeigh = size.height;
end
self.scrollPanel:setInnerContainerSize(CCSizeMake(size.width, nHeigh));
--print("== ==" .. size.width .. " " .. nHeigh)
local nWidth = size.width;
local nPosX = 0;
local nPosY = 0;
local nIndex = 0;
nHeigh = nHeigh - self.m_nHeigh;
local nItemWidth = size.width / self.m_nRColumn;
if itemAmount ~= nil then
self.ScheduleId = CCDirector:sharedDirector():getScheduler():scheduleScriptFunc(function ( )
print("nIndex " .. nIndex)
print("itemAmount " .. itemAmount)
if nIndex >= itemAmount then
CCDirector:sharedDirector():getScheduler():unscheduleScriptEntry(self.ScheduleId);
end
local info = self.goodsprop[nIndex + 1];
local item = self.ImageView_item:clone();
if nIndex % self.m_nRColumn == 0 then
nPosY = nHeigh - math.modf(nIndex / self.m_nRColumn) * self.m_nHeigh;
local itemSize = item:getSize();
nPosY = nPosY + itemSize.height / 2;
end
nPosX = self.m_nPosXStart + math.ceil(nIndex % self.m_nRColumn) * nItemWidth;
item:setPosition(ccp(nPosX, nPosY));
item:setVisible(true);
self.scrollPanel:addChild(item);
self:loadItem(item);
nIndex = nIndex + 1;
end, 0, false);
end
end
--
function UIBagController:loadItem(uiwidget)
local imgItem = tolua.cast(UIHelper:seekWidgetByName(uiwidget, "ImageView_Item"), "ImageView");
imgItem:loadTexture(ItemM:getIconPath(21419))
end