Ruby Shoes, многоэлементное удаление

По сути, я пытаюсь перепечатать этот метод каждый раз, когда выбрана опция Dropbox. Тем не менее:

inscription "test", :margin => 1, :stroke => rgb(x, x, x)

Элементы не удаляются. Они просто присоединяются к старым. Я не могу найти способ очистить их, не очистив весь стек! Есть ли способ использовать Shoe's clear() для элементов того же типа?

Пожалуйста, обратите внимание, большая часть этого кода является заполнителем для других вещей, и поэтому я добавляю константы, как конфеты.

def drawHeatMap #(calculatedGeneArray) NOT IMPLEMENTED
        # rect 'Pixels across, pixels down, width, height'
        pixelsAcross = 32
        pixelsDown = 28
        size = 18
        for i in 1..30
            if i <= 15 
            inscription "test", :margin => 1, :stroke => rgb(0, 128, 0)
            elsif i > 15
            inscription "test", :margin => 1, :stroke => rgb(205, 92, 92)
            end
            for j in 1..10
                stroke rgb(0, 0, 0) 
                #Fills Blocks randomly  
                randomnumber = 1+rand(8)
                case randomnumber
                when 1
                    fill rgb(19, 231, 3)
                when 2
                    fill rgb(9, 99, 0)   
                when 3
                    fill rgb(3, 73, 0)
                when 4 
                    fill rgb(74, 74, 0)
                when 5
                    fill rgb(48, 47, 0)
                when 6
                    fill rgb(32, 32, 48)
                when 7 
                    fill rgb(41, 41, 41)
                when 8 
                    fill rgb(15, 15, 15)
                end
                rect pixelsAcross, pixelsDown, size, size
                #Fills Ovals Randomly
                randomnumber = 1+rand(4)
                case randomnumber
                when 4
                    fill white
                    nostroke
                    oval  (pixelsAcross+(size/2)),(pixelsDown+(size/2)), size/4, center:true
                end         
                pixelsAcross += 18      
            end
            pixelsDown += 18
            pixelsAcross = 32   
        end 
    end 

1 ответ

Решение

Я не могу сказать, что и когда вы хотите удалить, но я думаю, что вы можете использовать следующий принцип:

Shoes.app do

  a=[]

  tmp=para "jkjkj"
  a << tmp
  tmp=para "sdfg"
  a << tmp

  button "jhjjh" do
   a.each{|l| l.remove}
  end

end
Другие вопросы по тегам