【解決済み】TemplateEvent.js で セルフ変数に文字列を代入するとき

アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

【解決済み】TemplateEvent.js で セルフ変数に文字列を代入するとき

投稿記事by MEIKOI » 2019年10月21日(月) 21:25

トリアコンタン様の

テンプレートイベント プラグインにて

セルフ変数に文字列を代入したいのですが

イベントコマンドのスクリプトにて
this.controlSelfVariable(100, 0, 'AAA' , formulaFlg);
文章の表示
\sv[100]
上記で0と表示されたので

this.controlSelfVariable(100, 0, 'AAA' , true);
文章の表示
\sv[100]
でも0と表示されました。

数値の時は、うまくいってたのですが
なにか間違っていると思うのですが・・・何が違うのかわかりません。
どなたかご教授ください・・・
最後に編集したユーザー MEIKOI on 2019年10月22日(火) 07:23 [ 編集 1 回目 ]

-----------------------------------------
https://twitter.com/meikoimv
-----------------------------------------
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: TemplateEvent.js で セルフ変数に文字列を代入するとき

投稿記事by MEIKOI » 2019年10月21日(月) 22:11

ヘルプに

※セルフ変数に数値以外を設定したい場合は、スクリプトで指定してください。

と記載があったので、スクリプトで書いていたのですが、

普通にプラグインコマンドで

TE_SET_SELF_VARIABLE [インデックス] [操作種別] [オペランド]

の形で指定したら、文字列が入りました^^;

とりあえず、スクリプトでの書き方はわかりませんので

このままにしておきますが、一応解決はしました。

ありがとうございました。
-----------------------------------------
https://twitter.com/meikoimv
-----------------------------------------
ecf5DTTzl6h6lJj02
記事: 450
登録日時: 2018年12月23日(日) 13:55

Re: TemplateEvent.js で セルフ変数に文字列を代入するとき

投稿記事by ecf5DTTzl6h6lJj02 » 2019年10月22日(火) 00:21

こんばんは。

スクリプトで書く書き方ですが、
this.controlSelfVariable(100, 0, 'AAA'); もしくは this.controlSelfVariable(100, 0, 'AAA', false);
とすると、正しく動作します。

this.controlSelfVariable(100, 0, 'AAA' , formulaFlg);、this.controlSelfVariable(100, 0, 'AAA' , true);でうまくいかなった理由ですが、
4番目の引数は、3番目の引数をeval関数で評価するかのフラグで、ここに falseや0以外の値が設定(記述)されていると、3番目の値をeval関数を使って評価します。
eval関数は渡された文字列をJavaScriptの構文として評価する関数なので、
3番目の値 'AAA'(丁度文字列になっている) が 変数 AAA の値という式にかわってしまい、結果 変数AAA の中身である0が返ってきています。
アバター
MEIKOI
記事: 168
登録日時: 2018年9月22日(土) 20:13
連絡を取る:

Re: TemplateEvent.js で セルフ変数に文字列を代入するとき

投稿記事by MEIKOI » 2019年10月22日(火) 07:22

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

「4番目の引数は、3番目の引数をeval関数で評価するかのフラグ」
「eval関数は渡された文字列をJavaScriptの構文として評価する関数」
とても勉強になりました!ありがとうございました!

“MV:質問” へ戻る