ここまでで ExtendedHistoryLayer クラスの中身は大体チェックできたんだけど、 まだいくつかメソッドが残ってるから、それを一通り見ていくことにするね。 | |
まだ残ってるメソッドがあるんだ? | |
ん、あと6つかな。 | |
え、そんなにあるの? | |
まぁどれも単純なメソッドだから、今回だけで十分チェックできるよ。 | |
ふーん、そーなんだ。 | |
じゃまずは prevPage メソッドと nextPage メソッドからね。 | |
それって前に見たことあると思うんだけど…。 確か前のページと次のページの履歴メッセージを表示するメソッドだったよね? |
|
うん、そうだよ。 ただ前に見たのは HistoryLayer クラスの方の prevPage メソッドと nextPage メソッドだからね。 |
|
※HistoryLayer クラスの prevPage メソッドと nextPage メソッドについては §10.10 参照。 | |
えっと、じゃあ prevPage メソッドと nextPage メソッドは ExtendedHitoryLayer クラスでオーバーライドしてるってこと? | |
そういうこと。 で、まずこれが ExtendedHistoryLayer クラスの prevPage メソッドね。 |
<ExtendedHistoryLayer クラスの prevPage メソッド>
最初にスーパークラス(HistoryLayer クラスだよね)の prevPage メソッドを呼び出してて… あとは canScroll が true の時に scrollBar.value に dispStart の値を代入してるだけ、みたいだね。 |
|
スクロールバーの value プロパティってどんなプロパティだったか覚えてる? | |
ん〜…スクロールバーの位置を設定するプロパティだったかな? | |
そ。dispInit メソッドでも出てきたよね。 | |
※value プロパティについては §10.9 参照。 | |
じゃあ、canScroll が true の時、 つまり履歴メッセージがスクロールできる時は、スクロールバーの位置を設定するってことだよね。 | |
そうだね。 | |
でもなんでここでスクロールバーの位置を設定してるの? | |
スクロールバーは今履歴メッセージのどの部分を表示してるかを表してるわけでしょ。 | |
うん。 | |
で、prevPage メソッドが呼び出されたってことは、1つ前のページが表示されたってことだから、
履歴メッセージの表示部分が変わったってことだよね。 だからそれに合わせてスクロールバーの位置も変えなくちゃいけないの。 |
|
スクロールバーの位置ってページを切り替えたら自動的に切り替ったりしないの? | |
残念ながら全部手動だよ。 だから履歴メッセージの表示位置が変わるたびにスクロールバーの位置も設定し直さなきゃいけないんだ。 |
|
あ、そーなんだ。 | |
まぁ設定し直すって言っても、value プロパティに dispStart の値を代入するだけだから、そんなに大変でもないでしょ。 | |
まー確かにね。 | |
そんなワケだから、nextPage メソッドでも同じことをやる必要があるんだ。 |
<ExtendedHistoryLayer クラスの nextPage メソッド>
スーパークラスの nextPage メソッドを呼び出して、スクロールバーの位置を設定し直すんだね。 | |
ん。あと scrollUp メソッドと scrollDown メソッドもね。 | |
scrollUp メソッドと scrollDown メソッドって、 履歴メッセージを1行先にスクロールするメソッドと1行前にスクロールするメソッドだったよね? | |
※scrollUp, scrollDown メソッドについては §10.11 参照。 | |
そう。この2つのメソッドも履歴メッセージの表示位置を変えるメソッドだから… | |
スクロールバーの位置を設定し直さなきゃいけないんだね。 | |
だからそれぞれこうなるわけね。 |
<ExtendedHistoryLayer クラスの scrollUp メソッド>
<ExtendedHistoryLayer クラスの scrollDown メソッド>
やっぱりスーパークラスのメソッドを呼び出してからスクロールバーの位置を設定し直すんだね。 | |
うん。どのメソッドも同じやり方だよ。 じゃ次のメソッドいくね。 |
|
まだスクロールバーの位置を設定し直すメソッドがあるの? | |
ううん、次は別のことをやるメソッドだよ。まぁスクロールバー関係ではあるんだけどね。 onValueChanged っていうメソッドなんだけど、前に出てきたの覚えてる? |
|
う〜ん…それって元々 HistoryLayer クラスのメソッドなんだっけ? | |
ううん、onValueChanged メソッドは ExtendedHistoryLayer クラスで新しく作ってるメソッドだよ。 実はメソッドの名前が前に出てきただけで、メソッドの中身はまだ全然見てないんだけどね。 |
|
そーなの? | |
onValueChanged メソッドは、§10.5 の makeButtons メソッドの中でスクロールバーのオブジェクトを作る時に、 HorizontalScrollBar クラス(水平スクロールバークラス)とか VerticalScrollBar クラス(垂直スクロールバークラス)のコンストラクタに指定してるメソッドで、 スクロールバーの上下(左右)のボタンをクリックしたりスライダーをドラッグしたりした時に呼び出されるメソッドなんだ。 | |
あー、そーいえばあの時はメソッドの中身はまた今度見てくって言ってたんだっけ。 | |
ってワケだから、これからメソッドの中身を見てくね。 |
…わりとシンプルなんだね。 | |
何やってるかもわかるでしょ? ちなみに引数の value はスクロールバーのボタンを押したりスライダーをドラッグしたりした後のスクロールバーの value プロパティの値になってるよ。 |
|
everypage が true だったら
setPage メソッドを呼び出して、everypage が false
だったら setLine メソッドを呼び出してるね。 どっちのメソッドを呼び出す時も引数は value だね。 |
|
setPage メソッドと setLine メソッドはどんなメソッドだった? | |
setPage メソッドは表示する履歴メッセージのページを設定するメソッドで、
setLine メソッドは表示する履歴メッセージの行を設定するメソッドだよね。 だから、everypage が true なら履歴メッセージの value ページ目を表示して、 everypage が false なら 履歴メッセージの value 行目を表示するってことかな。 |
|
※setPage メソッドについては §10.10、 setLine メソッドについては §10.12 参照。 | |
そうそう。 やってることはそれだけだから、特に問題ないよね。 |
|
うん、おっけー。 | |
それじゃ最後は onButtonClick メソッドね。 このメソッドも中身はまだ見てないんだけど、名前だけは前に出てきてるよ。 |
|
えっと…どこだっけ? | |
§10.5 の HistoryButtonLayer クラスだよ。 メッセージ履歴画面を閉じるボタン用のクラスだね。 |
|
ってことは、メッセージ履歴画面を閉じるボタンが押されたら onButtonClick メソッドが呼び出されるってこと? | |
そう。HistoryButtonLayer クラスのオブジェクトは、クリックすると親レイヤの
onButtonClick メソッドを呼び出すようになってるからね。 ちなみにメッセージ履歴を閉じるボタンの親レイヤはメッセージ履歴レイヤだよ。 |
|
onButtonClick メソッドってメッセージ履歴画面を閉じるボタンが押された時に呼び出されるわけだから、 メッセージ履歴画面を閉じなきゃいけないんだよね? | |
ん。だからスクリプトはこうなるの。 |
hide っていうメソッドを呼び出してるみたいだけど、このメソッドがメッセージ履歴画面を閉じるメソッドなの? | |
そうだよ。ちなみに hide メソッドは HistoryLayer クラスのメソッドだよ。 | |
そーなんだ。 あと、引数の button ってのは? |
|
button はメッセージ履歴を閉じるボタンの参照になってるんだけど、 ここでは使う必要ないから使ってないんだ。 | |
そっか。 | |
じゃこれで残ってたメソッドも一通りチェックできたから、メッセージ履歴のカスタマイズ基本編は終了だね。 | |
基本編が終わりってことは、次回からは応用編みたいなのになるってことだよね? | |
そーだね。 まずはメッセージ履歴画面の背景に好きな画像を表示できる機能を追加してみることにするね。 |
|
それって結構カンタンそうな気がするんだけど…そーでもないんだよね? | |
ん〜、思ったよりは大変って感じかな。 ま、詳しくは次回から見てくことにするね。 |
|
りょーかい。 | |
それじゃ、また次回ね! |