回答編集履歴

1

追記

2019/02/21 03:57

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -208,4 +208,16 @@
208
208
 
209
209
 
210
210
 
211
- 上の例は非常に単純化したものでボタン1に対してしか機能がありませんし、インターバルをボタンごとに変更するためにはもうちょっと工夫せねばなりません。そんなことを考えるにつけ、わざわざこんないびつな仕様のクラスを定義するよりは案1の共通関数ぐらいで充分な気がしました。コード例を書いておいてなんですが・・・上の例は筋が悪い感じがするのです。
211
+ ~~上の例は非常に単純化したものでボタン1に対してしか機能がありませんし、インターバルをボタンごとに変更するためにはもうちょっと工夫せねばなりません。そんなことを考えるにつけ、わざわざこんないびつな仕様のクラスを定義するよりは案1の共通関数ぐらいで充分な気がしました。コード例を書いておいてなんですが・・・上の例は筋が悪い感じがするのです。~~
212
+
213
+
214
+
215
+ ---
216
+
217
+ 追記:
218
+
219
+ magichanさんから有益なコメントをいただいています。回答コメントを見ていただけると例1/例2のいずれもいろいろ配慮すべき点があることがわかると思います。回答に書いたコードは「あくまでたたき台と思っていただきたい」点を強調しておきます。
220
+
221
+
222
+
223
+ 元の回答でターゲット個別へのインターバル指定云々と書きましたが、それは一つの考慮点にしかすぎずもっといろいろ考えるべき点がありそうです。(例えば上のコード例ではボタンリリース時に状態を変え、リリース後に発火したafterハンドラーでコールバックを起動しない配慮をしていますが、after_cancelとした方がスマートに感じます。)