2014-02-11 18 views
1

我是新手編程,特別是對科羅納SDK(Lua)。我需要幫助! 問題是: 我有10個圖像在數組和一個按鈕,同時點擊按鈕我需要刪除前一個圖像,並顯示下一個圖像存儲在數組中。 我做了所有,但是當點擊下一張圖片時,下一張圖片很好地呈現,但之前的圖片並未從屏幕上移除,我想將其刪除, 還有一件事情是在完成第10張圖片之後,我喜歡從圖像1,就像一個循環。如何刪除以前的圖像,並加載新的圖像,當觸摸下一個按鈕

local Next = function() 

    for j = 1, 10 do 

     j=j+1 

    end 

    return true 

end 

local dotted = {"images/1.png", "images/2.png","images/3.png","images/4.png","images/5.png", 
       "images/6.png","images/7.png","images/8.png","images/9.png","images/10.png"} 


local nextButton = widget.newButton{ 
    left = display.contentWidth/1.25, 
    top = display.contentHeight - 55, 
    defaultFile="images/next.png", 
    width = 50, height = 50, 
    onRelease = Next} 


j = 1 
function loadingImages1()  
    di = display.newImageRect(dotted[j],150,300); 
    di.x = calcx(40,"PER") 
    di.y = calcx(30,"PER") 
    di.height = calch(60,"PER") 
    di.width = calcw(20,"PER") 
    j = j + 1 
end 

local function onObjectTap(self,event) 
    --di1.removeSelf(); 
    di1:removeSelf(); 
    loadingImages1() 
    return true 
end 
nextButton:addEventListener("tap", onObjectTap) 

回答

0

我不認爲你需要下一個功能。你應該通過di1來表示di,然後removeSelf()應該足以讓它從視圖中消失。此外,我沒有看到任何代碼在第一次點擊之前初始化di。你應該有類似

local nextIndex = 1 

local dotted = {....} 

local di -- avoid globals 

local function loadingImages1()  
    di = display.newImageRect(dotted[nextIndex],150,300); 
    ... set x, y, height, width; then: 
    -- update next index, cycle back to 1 if necessary 
    nextIndex = nextIndex + 1 
    if nextIndex > #dotted then 
     nextIndex = 1 
    end 
end 

loadingImages1() -- run once to initialize 

local function onObjectTap(self,event) 
    di:removeSelf() -- remove di 
    loadingImages1() 
    return true 
end 
+0

非常感謝@Schollii !!它工作我,你可以請解釋我在哪裏我犯了錯誤, – bava

+0

我懷疑這個問題是使用di1,只有一條線,它應該導致錯誤,但因爲它不是一定有初始化所以它總是被刪除的圖像。 – Schollii

相關問題