TemplateEvent.jsのセルフ変数について

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by トリアコンタン »

こんばんは!
本プラグインのすべてのプラグインコマンドで\sv[n]が使用できる機能を追加しました。
(他のプラグインのプラグインコマンドで\sv[n]は使えないのでご注意ください)

プラグインコマンドで制御文字\sv[n]が利用できる機能を追加(ver1.7.0)
https://raw.githubusercontent.com/triac ... teEvent.js
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by にゃたま »

トリアコンタン様
トリアコンタン さんが書きました:こんばんは!
本プラグインのすべてのプラグインコマンドで\sv[n]が使用できる機能を追加しました。
(他のプラグインのプラグインコマンドで\sv[n]は使えないのでご注意ください)
更新頂きありがとうございます。
前のVer1.6.0で機能していた「TEセルフ変数の操作 503 1 1」の加算機能が
今回Verで機能しておりませんでした。(検証に少し時間がかかりました)
一度ご確認いただけないでしょうか?
加算機能しか確認しておりませんが他のも機能しなくなっている可能性があります。
以上報告のみになってしまいましたがよろしくお願いします。

追記
尚、制御文字のほうは対応できていることを確認しました。
報告が遅れ申し訳ございません。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by トリアコンタン »

おはようございます。
こちらで頂いたプラグインコマンドを実行してみましたが現象を再現できませんでした。。

コード: 全て選択

◆プラグインコマンド:TEセルフ変数の操作 503 1 1
◆文章:なし, ウィンドウ, 下
:  :\sv[503]
何か他に原因があるか、何らかの競合かもしれません。
他のプラグインコマンドは問題ないでしょうか?

また、性質上セルフ変数はイベントテストでは機能しませんのでご注意ください。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by にゃたま »

トリアコンタン さんが書きました:おはようございます。
こちらで頂いたプラグインコマンドを実行してみましたが現象を再現できませんでした。。

コード: 全て選択

◆プラグインコマンド:TEセルフ変数の操作 503 1 1
◆文章:なし, ウィンドウ, 下
:  :\sv[503]
何か他に原因があるか、何らかの競合かもしれません。
他のプラグインコマンドは問題ないでしょうか?
おはようございます。

他に上記の文章によるチェックで操作種別を変えて行いました。
尚、TemplateEvent.jsのみ有効にして確認しております。
コアスクリプトは最新の公式のものを導入しております。
0 : 代入:1
1 : 加算:undefined1
2 : 減算:NaN
3 : 乗算:NaN
4 : 除算:NaN
5 : 剰余:NaN

セルフ変数の初期値は特別なにも入れておりません。
もう少し調査してみます。

追記

コード: 全て選択

TEセルフ変数の操作 502 0 0
TEセルフ変数の操作 502 1 1
文章の表示:\sv[502]
上記のように0で初期化していたら問題ありませんでした。
Ver1.6.0はこのようにしなくても何も初期化してない状態で
演算できていたので内部的な何かが変わったのかなと思いました。

但しVer.1.7.0では新規プロジェクトを作成してまっさらな状態では初期化しなくても
演算できていたので他のイベントの実行のところで何か悪さしているのだと推測しています。
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by にゃたま »

トリアコンタン様

すみません。やっと謎が溶けました。
スクリーンショット 2017-08-31 12.24.52.png
こちらの画像のように全てのセルフ変数にundefineを代入していたことが原因でした。
このコモンイベントを実行しないようにしたら普通に演算できるようになりました。
初期化は前にトリアコンタン様が実装していただいたセルフ変数の一括変更を
行うようにします。お騒がせしてすみませんでした。

…でも何故Ver1.6.0ではこれで動いていたんだろう…(謎)

追記
上記コモンイベントでundefineのところを0にしたら解決しました。
セルフ変数一括変更やってみたのですが何故かうまく変更できませんでした。
スクリプトで以下のように書いてみました。
this.controlSelfVariableRange(11, 0, $dataItems.length-1, 0);
これでセルフ変数11から$dataItems.length-1まで0を代入するという意味になりませんか?
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by トリアコンタン »

こんばんは。

画像の場合、プラグインコマンドで、セルフ変数に「undefine」という「文字列」を代入しています。
文字列を代入した後に、数値を演算(加算や減算)しようとするとおかしな表示になります。

以前のバージョンではプラグインコマンドでセルフ変数に文字列を指定すると数値(0)に置き換えられていましたが、本バージョンより文字列が指定された場合は、文字列が設定されるようになったため問題の現象が発生するようになったと思われます。

またセルフ変数は、初期化されていない値を参照しようとすると「0」を返すので特に初期化は必要ありません。

また、一括設定の引数は以下の通りです。(ヘルプの記述が一部不足していたので修正します)

コード: 全て選択

this.controlSelfVariableRange(start, end, type, operand, formulaFlg);
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
にゃたま
記事: 837
登録日時: 2016年1月13日(水) 23:53
お住まい: 床下の猫王国-すみませんが体調悪いのでサポートはお休みさせていただきます
連絡する:

Re: TemplateEvent.jsのセルフ変数について

投稿記事 by にゃたま »

トリアコンタン様
トリアコンタン さんが書きました: 画像の場合、プラグインコマンドで、セルフ変数に「undefine」という「文字列」を代入しています。
文字列を代入した後に、数値を演算(加算や減算)しようとするとおかしな表示になります。
文字列だったから加算すなわち+演算で文字列に数字がくっつくだけだったんですね。
トリアコンタン さんが書きました: 以前のバージョンではプラグインコマンドでセルフ変数に文字列を指定すると数値(0)に置き換えられていましたが、本バージョンより文字列が指定された場合は、文字列が設定されるようになったため問題の現象が発生するようになったと思われます。
謎が溶けました。defineで初期化していたつもりが「ただの文字列」で文字列の場合はver1.6.0までは
0が代入されていたので初期化できているように“見えていた”だけだったのか…
あとで分かったことですがdefineではなくdefinedですね…
こちらにしたところで文字列であることに変わりないですがorz
トリアコンタン さんが書きました: またセルフ変数は、初期化されていない値を参照しようとすると「0」を返すので特に初期化は必要ありません。
成る程、definedで初期化する必要はないのであれば、これからは元の状態に戻す為に0を代入するようにします。
トリアコンタン さんが書きました: また、一括設定の引数は以下の通りです。(ヘルプの記述が一部不足していたので修正します)

コード: 全て選択

this.controlSelfVariableRange(start, end, type, operand, formulaFlg);
引数がそもそも足りなかったのですね…変更したら問題なく0で初期化されました。
this.controlSelfVariableRange(11, $dataItems.length-1, 0, 0, 1);
で成功しました。

セルフ変数色々奥が深そうです。もう少し調査してみます。
返信する

“MV:質問”に戻る