2014-02-11 1 views
1

Я новичок в программировании и особенно в Corona 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

Смежные вопросы