From: NAGAI Hidetoshi Date: 1998-06-30T10:55:47+09:00 Subject: [ruby-dev:3106] Re: experimental release 1.1b9_28 永井@知能.九工大です. >>>>> "M" == Takahiro Maebashi writes: M> ところで、かわりに TkAfter を使ってみようと思ったのですが、引数の数が多 M> くて使い方が良くわかりませんでした。 M> def go M> game.nextgen M> update M> if @goflag M> after 0, proc {go} M> end M> end M> というのを TkAfter で書くとどうなるのでしょうか。 これは mine の life-game ですよね. TkAfter を使うのであれば, ---------------------------------------- @go = TkAfter.new(0, -1, proc{game.nextgen; update}) # インターバルを 0 ms にしてループ回数無限( -1 を指定). # 繰り返す手続きは引数なしの proc{game.nextgen; update} のみ. # 要引数なら,[ proc{|x,...| game.nextgen; update}, 引数, ... ] # のように手続きと引数とを配列にして指定. # 複数手続きを繰り返すの場合は手続きを並べる. # たとえば a と b とを交互なら,TkAfter.new(0, -1, a, b) となる. ---------------------------------------- というようにしておいて,ボタンの方の機能を ---------------------------------------- 'command'=>proc { @goflag = !@goflag if @goflag @gobutton.text 'stop' @go.start else @gobutton.text 'start' @go.stop end } ---------------------------------------- とするような感じでしょうか. -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp