2012年07月20日
画面の切替方法について
画面の切替方法について、ちょっと考えています。
A画面からB画面に遷移するときに、B画面の Frame を取得して
setCurrent をしていますが、その瞬間に
setCurrent を実行したプログラムは中断されてしまうようです。
B画面については、たとえばA画面からの子画面だとして、
そこからA画面に戻るときに、A画面に対して setCurrent する必要があります。
A画面に遷移を戻す際は、A画面の Frame が必要です。
解決策として、コンストラクタの引数に、遷移元の Frame を指定することで解決しそうです。
でも、何か使い方がしっくりきません。
CarRace では、メインとなるクラス経由で、各画面を呼出すようになっていました。
Static で呼び出しているようなのですが、この使い方も、何かしっくりきません。
今は、コンストラクタから Frame を指定して、callback という名前のメソッドを
呼出すようにしています。callback の実行時には this に
自分自身の Frame が入っているので、そのまま setCurrent(this) とすればいいわけです。
今思いつきで書いていますが、
広域変数でスタックトレースを用意するのもいい方法だと思いました。
画面呼出し時にスタックをためていき、画面を戻るときにスタックを消費していきます。
後はスタックトレース専用のクラスがあればいいことになります。
{a8.net http://books.livedoor.com/item/1062223}
A画面からB画面に遷移するときに、B画面の Frame を取得して
setCurrent をしていますが、その瞬間に
setCurrent を実行したプログラムは中断されてしまうようです。
B画面については、たとえばA画面からの子画面だとして、
そこからA画面に戻るときに、A画面に対して setCurrent する必要があります。
A画面に遷移を戻す際は、A画面の Frame が必要です。
解決策として、コンストラクタの引数に、遷移元の Frame を指定することで解決しそうです。
でも、何か使い方がしっくりきません。
CarRace では、メインとなるクラス経由で、各画面を呼出すようになっていました。
Static で呼び出しているようなのですが、この使い方も、何かしっくりきません。
今は、コンストラクタから Frame を指定して、callback という名前のメソッドを
呼出すようにしています。callback の実行時には this に
自分自身の Frame が入っているので、そのまま setCurrent(this) とすればいいわけです。
今思いつきで書いていますが、
広域変数でスタックトレースを用意するのもいい方法だと思いました。
画面呼出し時にスタックをためていき、画面を戻るときにスタックを消費していきます。
後はスタックトレース専用のクラスがあればいいことになります。
{a8.net http://books.livedoor.com/item/1062223}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image