スポンサーリンク

chara_ptext(キャラクター名表示欄)も current で切り替えたい

current でメッセージレイヤーを切り替えた時にキャラ名表示も一緒に切り替えたいなーってやつです。
結構ググったつもりだけど全然見つけられなかったので、あまりこういう使い方する人は居なさそうですが。

尚、途中で元に戻すのは想定していません。

動作確認

ティラノスクリプト v510h

改造版

動作は安定しますが、改造が面倒くさい。
chara_ptext と showMessage の改造が必要です。

chara_ptext

$("." + this.kag.stat.chara_ptext) 部分の親にカレントレイヤーを指定します。4か所あります。

$("." + this.kag.stat.current_layer + "_fore").find("." + this.kag.stat.chara_ptext);
は長いので、変数に入れておくと良いと思います。

const layer = "." + this.kag.stat.current_layer + "_fore";
$(layer).find("." + this.kag.stat.chara_ptext).html("");

showMessage

chara_ptext と同じくカレントレイヤーを親要素に指定します。
showMessage はバックログ用です。

js

改造しない版

いつの間にか改造面倒くさいマンになってしまったので、ともかく改造しないで済む方法を模索してみました。
模索してる間に改造した方が早くて安定しますけどね…。

因みに、MutationEvent はパフォーマンスの問題で非推奨となっています。
ただ、chara_name_area に子孫要素はないので大丈夫じゃないかなあ?と思ってますが…。
Mutation Observers は使い方がわかりません!!!

js

使い方

  1. キャラ名枠はレイヤーごとに指定してください。
    name は同じ名前にしてください。
    [ptext name="chara_name_area" layer="message0" (略)]
    [ptext name="chara_name_area" layer="message1" (略)]
    [chara_config ptext="chara_name_area"]  ←これは一個でOK
  2. 上記jsコードを適当な名前で保存し、キャラ名欄定義の後に loadjs で読み込む。
    [chara_config ptext="chara_name_area"] ←キャラ名欄定義
    [loadjs storage=chara_name.js] ←js読み込む(名前は適当)
  3. 普通に [current] タグでメッセージレイヤーを切り替えてください。
  4. メッセージ枠を変更した場合は、直後に #name が無いと変更が有効になりません。

参考サイト

【JavaScript + JQuery】DOMの変更を監視するリスナー – 新米エンジニアの失敗再発防止メモ

特定のページで面倒な操作を自動でやりたいときなど、拡張機能を作成すると思います。 リンクやボタンをクリックした時に、ページ遷移じゃなくてDOM全体がふわっと変わるような洒落乙なサイトも時々あって、そういうときって DOMが変更された時に反応して処理を走らせたかったりします。 やり方 $(‘HTML’).on(‘DOMSubtreeModified propertychange’, function() { // DOMが変更された時に動く処理 });この場合、htmlタグの中の何かが変更されたら処理が走ります。 セレクタ「$(‘HTML’)」の部分を変えれば範囲を絞れます。ただ気を付けて欲しい…

関連記事

スポンサーリンク

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

スポンサーリンク