- ■吉里吉里/KAG/TJS雑談質問スレ■その23
627 :名前は開発中のものです。[sage]:2011/04/13(水) 00:53:34.63 ID:xweTT8AM - ちょっと質問
おまけモードを作ろうと配列で座標とか管理してたんだけど、そこに式中関数組み込みしようとしたら、 良く考えたら式中関数は呼ばれた時に for(var i=0;i<10;i++) { button_[i] = new SystemButtonLayer(kag, pop_layer_tp_fore, function() { kag.se[1].play(%[storage : 'se_ok.wav']); button_select = i; }incontextof this); with(button_[i]){ .fillRect(0, 0,kag.scWidth,kag.scHeight, 0x00000000); .opacity=255; .visible=true; } } with(button_[0]) { 画像のそれぞれの設定 } ・・・・と書いたんだけど、グラフィックボタンを押したら直接飛ぶんじゃなくて、button_selectにそれぞれの数字(button[0]なら0と言う感じ)を入れて、後でそれを判定して飛ぶようにしたかったのだけど、 当然この形だと式中関数が実行されるとiが見つからずにエラーになるんだけど、これの対処方法ってどうすればいいんだろう? 一番良いのは、配列の添え字をそのまま数字として扱えれば理想なんだけど、そう言う事って可能かな? 式中関数を組み込む形で一気に配列で作ると、それぞれのボタンの違いを判断する方法が思いつかない・・・・・
| - ■吉里吉里/KAG/TJS雑談質問スレ■その23
629 :名前は開発中のものです。[sage]:2011/04/13(水) 01:50:23.73 ID:xweTT8AM - >>628ありがとう。
これは思いつかない・・・・・勉強せねば
| - ■吉里吉里/KAG/TJS雑談質問スレ■その23
630 :名前は開発中のものです。[sage]:2011/04/13(水) 10:32:05.40 ID:xweTT8AM - 追質問申し訳無いです
>>628で式中関数の中で別の変数を定義する場合 function() { global.kag.se[1].play(%[storage:'se_ok.wav']); test_flag=true; owner.button_select = i; } incontextof %[ owner:this, i:i ] このtest_flagを単にclassの外に定義してglobal.kag.test_flag=true;と書けば良いだけなんだけど、 classの中で定義した場合はどう書くんだろう? thisは使えないし、ownerもダメだし、 newで宣誓したオブジェクト名(global.xxxxx.test_flag=true;)でやるか、 timerなどで.button_selectを監視すると言うのも手だと思うけど、単純に上手く書けそうな気がするけど無理なのかな? ちなみにclassの外に出来るだけ定義したくないのは、万が一変数が被るのが嫌なだけだから、絶対に被らない変数にしてしまうと言うのも手だと思うけど、それだと逆にスクリプト中で見にくいかなと。
|
|