Как применить границу к потоку при клике?

У меня есть этот кусок приложения обувь:

flow :top => 10, :left => 10 do
  flow :width => 0.3 do 
    para @board.deck.card
    click do
      if @board.source_pile
        @board.source_pile = nil
        @deck_border.hide
      else
        @board.source_pile = @board.deck
        @deck_border = border yellow, :strokewidth => 2
      end
    end
  end
end

Я хотел бы применить границу только ко второму потоку, но по какой-то причине граница появляется вокруг всего приложения. Что мне не хватает?

1 ответ

Решение

Обувь имеет хитрые блоки. Короче говоря, в блоках, self обычно относится к заявке. Чтобы противостоять этому, нам нужно создать переменную для хранения потока, который мы хотим ограничить:

flow :top => 10, :left => 10 do
  inner = flow :width => 0.3 do 
    para @board.deck.card
    click do
      if @board.source_pile
        @board.source_pile = nil
        @deck_border.hide
      else
        @board.source_pile = @board.deck
        @deck_border = inner.border yellow, :strokewidth => 2
      end
    end
  end
end
Другие вопросы по тегам