在Corona中导入“widget”库后,我的代码输出会损坏

时间:2014-01-24 15:17:27

标签: lua widget corona

我的代码工作正常,但在包含小部件库之后,输出变得混乱。你能告诉我这是什么问题吗?

--Include sqlite
local sqlite3 = require "sqlite3"
local widget = require "widget"

W=display.contentWidth
H=display.contentHeight

--Open library database file
local path = system.pathForFile("library", system.ResourceDirectory)
db = sqlite3.open( path )   

title = display.newText("LIBRARY", 0, 0, nil, 30)
title.x = W/2 title.y=50

--Access records of book table and display them as nx2 grid with title and cover.
xOffset = 10
yOffset = 100  
items = display.newGroup()
for row in db:nrows("SELECT * FROM book") do
   local text = row.bookName
   local img = display.newImageRect("img"..row.bookId..".jpg", 200, 200 )
   local t = display.newText(text, 0, 0, nil, 25)
   t.x = img.x
   t.y = img.contentBounds.yMax+50
   item = display.newGroup(img,t)
   item.anchorChildren = true
   items:insert(item)
   items.anchorChildren = true

   if(xOffset==10) then
     item.anchorX, item.anchorY = 0,0
     item.x = xOffset
     xOffset = W-10
     item.y = yOffset
     --t:setTextColor(0,255,0)
   else
     item.anchorX, item.anchorY = 1,0
     item.x = xOffset
     xOffset= 10
     item.y = yOffset
     yOffset = yOffset+item.contentBounds.yMax-50
     --t:setTextColor(255,0,0)
   end 
end

编辑:

在包含小部件之前:

enter image description here

包含小部件后:

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,items显示组中的对象显然是受影响的对象 - 看看库文本不在该组中的方式,并且它保持原样。

在设置项目的x和y之后,打印出它的位置。同时打印组的位置和尺寸 - 这将使您更好地了解定位的位置或原点(0,0)的位置。

local i = 1;
for row in db:nrows("SELECT * FROM book") do
    local text = row.bookName
    local img = display.newImageRect("img"..row.bookId..".jpg", 200, 200 )
    local t = display.newText(text, 0, 0, nil, 25)
    t.x = img.x
    t.y = img.contentBounds.yMax+50
    item = display.newGroup(img,t)
    item.anchorChildren = true
    items:insert(item)
    items.anchorChildren = true

    if(xOffset==10) then
        item.anchorX, item.anchorY = 0,0
        item.x = xOffset
        xOffset = W-10
        item.y = yOffset
        --t:setTextColor(0,255,0)
    else
        item.anchorX, item.anchorY = 1,0
        item.x = xOffset
        xOffset= 10
        item.y = yOffset
        yOffset = yOffset+item.contentBounds.yMax-50
        --t:setTextColor(255,0,0)
    end 
    print("--------")
    print("Item "..tostring(i).." is at ("..tostring(item.x)..","..tostring(item.y)..")")
    print("Item group now at ("..tostring(items.x)..","..tostring(items.y)..")")
    print("Item group size = width:"..tostring(items.contentWidth)..", height:"..tostring(items.contentHeight))
end
print("--------")

比较包含/不包含小部件的输出,您应该能够找到问题。