#ModalFormDataで送信された内容によって処理

1 messages · Page 1 of 1 (latest)

proud rose
#

ModalFormDataで送信された内容によって処理をしたいのですがどのようなコードを書けばよいかわかりません。
できればtitle,textField,dropdown,slider,toggleすべて教えてくれると助かります。

gritty berry
#

mazu

#

showまで書いた前提とします

#

showに.then(res => {})をはやして書く感じです

#

de

#

フォームの内容は

#

res.formValues[]で確認できます

#

上から一番目は

#

res.formValues[0]
二番目はres.formValues[1]みたいな感じです

#

テキストフィールドの場合はstringが帰ってきて

#

ドロップダウンは

#

string

#

スライダーは―Number

#

toggleは trueかfalseが返ってきます

#

わからなかったらコード付きで説明します

proud rose
#

ありがとうございます!
コード付きでおねがいします...

gritty berry
#
        const form = new ModalFormData()
            .title("title")
            .toggle("トグル",false)
            .slider("スライダー",0,100,1,0) 
            .dropdown("ドロップダウン",["1","2","3"],0)
            .textField("テキストフィールド","プレースホルダ","初期値"); 
        form.show(player).then(res => {
            if (res.canceled) return;
                    //上から順でスライダードロップダウンとなっていて
                    ///res.formValues[0]が上から一番目
                    ///res.formValues[1]が上から一2番目みたいな感じです
                    //フォームの値を変えながら試してみるといいと思います
            player.sendMessage(` toglgle: ${res.formValues[0]}`);
            player.sendMessage(` slider: ${res.formValues[1]}`);
            player.sendMessage(` dropdown: ${res.formValues[2]}`);
            player.sendMessage(` textField: ${res.formValues[3]}`);
                 if (res.formValues[0]) player.sendMessage("トグルはtrueになってます")//トグルが押された状態の時に送信される

        });
   }


proud rose
#

textFIeldで指定された文字を書きたいときは
if(res.formValues[1~3] === test)
みたいに書けば大丈夫ですか?

gritty berry
#

行けるはずです

proud rose
#

いまやってみましたができませんでした..

gritty berry
#

エラーは出ましたか

#

もしかして

#

testって

#

文字のつもりで書きましたか?

#

それだったら"test"

#

にしないといけません

proud rose
#

わかりました

#

できました!ありがとうございます!

proud rose
#

formの内容を保存することはできますか?

gritty berry
#

できます

#

変数や

#

スコアや

#

ダイナミックproperty

proud rose
#

player.score.set(${res.formValues[2]);
とかでできますか?
(スライダーの数字をスコアに入れたい)

gritty berry
#
const score = world.scoreboard.getObjective(スコアの名前);
score.setScore(player, res.formValues[2]);

で出来ます