配列の初期化時に配列を入れる方法

返信する
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

配列の初期化時に配列を入れる方法

投稿記事 by よしだとものり »

少しJavascriptの質問になって恐縮です。
配列の初期化に配列を入れるケースを紹介している
ところを探せなかったのでここに質問します。

現在インプットフォームのボタンを改造して、ボタンを押したらスイッチに
その状態を保存するようなプラグインを作っています。
例えばボタン1をクリックしたらスイッチ1をオンにするみたいな感じです。

今のところ自分だけで使うなら、下記のように二つだけのボタンで大丈夫だと
思いますが、可能であれば配列にして汎用性を高めたいと思っています。
無理なら諦めますので、可能であれば教えて下さい。


以下のようなsubmitボタンを
submit:null←ボタン1
submit2:null←ボタン2
gui.submit.addEventListener("mousedown", stopPropagation);

以下のように記述しても問題ないでしょうか?

var btn=[];
submit:btn,

gui.btn[0].addEventListener("mousedown", stopPropagation);
gui.btn[1].addEventListener("mousedown", stopPropagation);
gui.btn[2].addEventListener("mousedown", stopPropagation);

var gui = {

 submit :null,
 submit2: null,
 is_pc : true ,
 init : function(){
 this.is_pc = Utils.isNwjs();

 } ,
 create : function(){
// 入力フォーム



 }
以下略
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: 配列の初期化時に配列を入れる方法

投稿記事 by しぐれん »

配列のリテラル初期化でどうでしょうか?
以下のように二次元配列を定義できるので、これの応用でできると思います。

コード: 全て選択

var array =[
 [1,2,3],
 [4,5,6],
 [7,8,9]
]
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 配列の初期化時に配列を入れる方法

投稿記事 by よしだとものり »

回答ありがとうございます。

元のプログラムが以下のようになっているのですが、
多分一次元配列に、オブジェクトや関数を入れていると
思いますが、アクセス方法が
gui.init();
みたいな事をしていますから、
guiの構造は変えないようにしたいです。


なので submit:null,をsubmit:配列オブジェクトに
変えたかったのですが、以下のような初期化はできないのでしょうか

コード: 全て選択


//汎用的に作り変える方法
	var btn=[];

	var gui = {

	submit :btn,

	is_pc : true ,

	gui.submit.btn[0] = document.createElement('input');


//元のプログラム
	var gui = {

		submit :null,
		submit2: null,
		is_pc : true ,
 		init : function(){
		} ,
		create : function(){
		} ,
		success : function(){
		} ,
		cancel : function(){
		} ,
		start : function(){
		} ,
		end : function(){
		} ,
		screenAdjust : function(){ // canvasの左上を基準にした位置に合わせる);
	}

            //
gui.init();


私はツクール標準のショップコマンドの「購入する、売却する、やめる」の処理
が理解できなくてこちらの方法に逃げたのですが、
ショップのコマンドが理解できれば不要なプラグインですので
汎用性を持たせるために修正が多くなるなら諦めます;;
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

Re: 配列の初期化時に配列を入れる方法

投稿記事 by しぐれん »

ツクールのWIndow系クラスの動きを理解する方が最終的には得だと思います。
Window_ShopCommandクラスのmakeCommandList()内をコメントアウトして、どこの処理が何と関連しているかを探ると良いと思います。

また、guiではcancel : function(){...}などでハンドルを登録して動かしますが、ツクールのWindowもsetHandlerでコールバック関数を登録して動かす仕組みです。
この辺りをイメージしてもらえれば、理解しやすいと思うのですが、どうでしょうか?
現在、プラグイン依頼はお休み中です。
よしだとものり
記事: 134
登録日時: 2017年7月25日(火) 23:18

Re: 配列の初期化時に配列を入れる方法

投稿記事 by よしだとものり »

少しやってみましたが、indexwindowやgoldwindowとは違って、まったく表示されません。
早速ですが、積みました。
質問内容が違うので新しくスレッドを作って質問しています。
返信する

“MV:質問”に戻る