2012-04-28 30 views
0

我有這個數組在我的LUA ...如何讓盧阿數組值中不使用ID

local data = {} 

data[1] = {} 
data[1].title = "Crazy Song" 
data[1].subtitle = "by Bruno Earth" 
data[1].image = "note.png" 

data[2] = {} 
data[2].title = "Enter Sunman" 
data[2].subtitle = "by Mentalica" 
data[2].image = "note.png" 

data[3] = {} 
data[3].title = "Bitter Child of Mine" 
data[3].subtitle = "by Gunz n bullets" 
data[3].image = "note.png" 

data[4] = {} 
data[4].title = "Missed A thing" 
data[4].subtitle = "by Ero-Smith" 
data[4].image = "note.png" 

data[5] = {} 
data[5].title = "Pornstar" 
data[5].subtitle = "by Nicklefront" 
data[5].image = "note.png" 

data[6] = {} 
data[6].title = "Burner" 
data[6].subtitle = "by Asher" 
data[6].image = "note.png" 

我如何能不使用它id獲取數組值。我只想爲我的條件聲明獲得title

我嘗試這在我的代碼:

local getTitle = function(event) 
    print (".................") 
    print (event.target.id) 
    print (event.target.title) 
end 

,但我只拿到了這......

touch: began 
touch: ended 
................. 
2 
nil 

?我怎樣才能和打印我的數組的title

這是我的代碼:

module(..., package.seeall) 
display.setStatusBar(display.HiddenStatusBar) 
function new() 
    local localGroup = display.newGroup() 
    local tableView = require("tableView") 
    local ui = require("ui") 

    -------------------------------------------------------------------------- 
    local screenOffsetW, screenOffsetH = display.contentWidth - display.viewableContentWidth, display.contentHeight - display.viewableContentHeight 

    local songList 
    local backBtn 
    local detailScreenText 

    local background = display.newRect(0, 0, display.contentWidth, display.contentHeight) 
    background:setFillColor(0, 0, 0) 
    localGroup:insert(background) 

    local data = {} 
    --iPad: setup a color fill for selected items 
    local selected = display.newRect(0, 0, 50, 50) --add acolor fill to show the selected item 
    selected:setFillColor(67,141,241,180) --set the color fill to light blue 
    selected.isVisible = false --hide color fill until neede 

    ----------------------------------------------- 
    data[1] = {} 
    data[1].title = "Crazy Song" 
    data[1].subtitle = "by Bruno Earth" 
    data[1].image = "note.png" 

    data[2] = {} 
    data[2].title = "Enter Sunman" 
    data[2].subtitle = "by Mentalica" 
    data[2].image = "note.png" 

    data[3] = {} 
    data[3].title = "Bitter Child of Mine" 
    data[3].subtitle = "by Gunz n bullets" 
    data[3].image = "note.png" 

    data[4] = {} 
    data[4].title = "Missed A thing" 
    data[4].subtitle = "by Ero-Smith" 
    data[4].image = "note.png" 

    data[5] = {} 
    data[5].title = "Pornstar" 
    data[5].subtitle = "by Nicklefront" 
    data[5].image = "note.png" 

    data[6] = {} 
    data[6].title = "Burner" 
    data[6].subtitle = "by Asher" 
    data[6].image = "note.png" 

    local topBoundary = display.screenOriginY + 40 
    local bottomBoundary = display.screenOriginY + 0 

    local getTitle = function(event) 
     print (".................") 
     print (event.target.id) 
     print (event.target.title) 
    end 

    songList = tableView.newList{ 
     data=data, 
     default="listItemBg.png", 
     over="listItemBg_over.png", 
     onRelease=getTitle, 
     top=topBoundary, 
     bottom=bottomBoundary, 
     callback = function(row) 
      local g = display.newGroup() 

      local img = display.newImage(row.image) 
      g:insert(img) 
      img.x = math.floor(img.width*0.5 + 6) 
      img.y = math.floor(img.height*0.5) 

      local title = display.newText(row.title, 0, 0, native.systemFontBold, 16) 
      title:setTextColor(0,0,0) 
      g:insert(title) 
      title.x = title.width*0.5 + img.width + 6 
      title.y = 30 

      local subtitle = display.newText(row.subtitle, 0, 0, native.systemFont, 14) 
      subtitle:setTextColor(80,80,90) 
      g:insert(subtitle) 
      subtitle.x = subtitle.width*0.5 + img.width + 6 
      subtitle.y = title.y + title.height + 6 

      return g 
     end 
    } 
    localGroup:insert(songList) 
    local function scrollToTop() 
     songList:scrollTo(topBoundary-1) 
    end 

    local navBar = display.newImage("navBar.png") 

    navBar.x = display.contentWidth*.5 
    navBar.y = math.floor(display.screenOriginY + navBar.height*0.5) 
    localGroup:insert(navBar) 

    local navHeader = display.newText("Song Lists", 0, 0, native.systemFontBold, 16) 
    navHeader:setTextColor(255, 255, 255) 
    navHeader.x = display.contentWidth*.5 
    navHeader.y = navBar.y 
    localGroup:insert(navHeader) 

    --backBtn.alpha = 0 

    local listBackground = display.newRect(0, 0, songList.width, songList.height) 
    listBackground:setFillColor(255,255,255) 
    songList:insert(1,listBackground) 

    --Setup the back button 
    function changeScene(e) 
     if e.phase == 'ended' then 
      print ("ok") 
      director:changeScene(e.target.scene, "fade") 
      print ("back!") 

     end 
    end 

    backBtn = display.newImage("backButton.png") 
    backBtn.x = math.floor(backBtn.width/2) + backBtn.width + screenOffsetW 
    backBtn.y = navBar.y 
    backBtn.scene = "menu" 
    backBtn:addEventListener("touch", changeScene) 

    return localGroup 
end 
+0

你是如何調用'getTitle'? – 2012-04-28 01:40:00

+0

感謝Seth的回覆,我使用'tableView.lua',我會粘貼我的整個代碼.. – gadss 2012-04-28 01:41:36

回答

1

我得到它... 我這樣做

local getTitle = function(event) 
    print (".................") 
    local id = event.target.id 
    print (id) 
    print (data[id].title) 
end