■吉里吉里/KAG/TJS雑談質問スレ■その23at GAMEDEV■吉里吉里/KAG/TJS雑談質問スレ■その23 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト872:名前は開発中のものです。 11/05/20 19:12:28.26 eAwQCbJq TJSについて詳しく無い人にわかるようにきちんと説明するのはかなり大変なので、要点だけ解説します。 まず、一番大本の obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn(i)); では駄目なのか? この場合、期待しているのは「ボタンが押された時にbtn関数が呼ばれる」事なのに、 この表記だと「ボタンを作成した時にbtn関数が呼ばれる」事になってしまいます。 つまり、最初の表記ではSystemButtonLayerに「btn関数を渡す」つもりで 「btn関数の呼び出し結果を渡してしまっている」ことがエラーの原因です。 (続く) 873:名前は開発中のものです。 11/05/20 19:15:40.36 eAwQCbJq TJSではbtn関数が定義されている状態で「btn()」と書くと、 その関数が呼び出した実行結果がとなります。関数そのものを あらわすには「btn」と、括弧無しで表記する必要があります。 つまり、元々の意図通り「SystemButtonLayerに、ボタンが 呼び出された時に処理されるようにbtn関数を渡す」場合は、 以下のように表記するのが正しいことになります。 obj[i] = new SystemButtonLayer(kag, kag.fore.base, btn); …でも、これはこれで何かおかしいですね? そう、btn関数は引数をひとつ必要とする関数なのに、 これではボタンが押された時に引数無しでbtn関数が呼び出されてしまい、 やはりエラーになってしまうでしょう。 ではどうすればいいのか? (続く) 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch