KDOC 42: EbitenUIで動的に画像を書き換える

EbitenUIはゲームエンジンEbitengineのUIライブラリである。クリックなどのイベントに応じて動的にラベルを切り替える方法がわからなかったので、コードを読んで把握した方法を書く。そもそもUIは動的に変更しないことがほとんどなので、ケースとして強調して記載されていないように見える。

結論としては、イベントハンドラに自身を書き換える無名関数を登録すればよい。

makeLabel := func() string {
        t := time.Now()
        return t.Format("03:04:05")
}
button := newButton() // newButton()は *widget.Button を返す関数
button.ClickedEvent.AddHandler(func(args interface{}) {
        button.Text().Label = makeLabel()
})