Yo an die großen JavaScript Gurus!
Ich habe ein Problem mit einem Plugin und dachte eventuell kann mir FlipelyFlip oder Tamschi (oder gerne auch, wer hier sonst Ahnung von JS hat^^) weiterhelfen. Allerdings müsstet ihr euch dafür wahrscheinlich das Plugin anschauen und das ist mittlerweile hinter einer PayWall, aber evtl. hat es ja schon einer von euch?
Ich benutzte Yanfly's Gab Window Plugin um Textfenster zu erzeugen, für die das Spiel nicht angehalten wird. Wenn man zum Beispiel ein Item findet, kann ich so eine Benachrichtigung anzeigen, ohne dass der Spieler unterbrochen wird. Von Haus aus zeigt das Plugin keinen Windowskin für diese Textfenster an, aus kosmetischen Gründen habe ich das aber mit folgendem Code geändert:
Window_Gab.prototype.updateFadeIn = function() {
this.contentsOpacity += Yanfly.Param.GabFadeRate;
this.opacity += Yanfly.Param.GabFadeRate;
};
Window_Gab.prototype.updateFadeOut = function() {
this.contentsOpacity -= Yanfly.Param.GabFadeRate;
this.opacity -= Yanfly.Param.GabFadeRate;
if (this.contentsOpacity > 0) return;
if (this._gabSwitchedOn) return;
if (this._gabSwitch) {
$gameSwitches.setValue(this._gabSwitch, true);
this._gabSwitchedOn = true;
}
};
Dadurch entsteht jetzt aber mein Problem: In Yanflys Plugin ist die Länge des Textfensters ein fester Wert:
var ww = Graphics.boxWidth + this.standardPadding() * 2;
Mit einem Windowskin sieht man also manchmal immer ein gleichgroßes Fenster um den Text herum - egal wie kurz oder lang der Text ist. Er wird also teils vom Fenster abgeschnitten, oder ist viel zu kurz um so ein langes Fenster zu rechtfertigen. Ich bräuchte also eine Möglichkeit sich das Textfenster automatisch an die Textlänge anpassen zu lassen. Ich könnte mir vorstellen, das irgendwie mit
contents.measureTextWidth
hinzukriegen, aber leider endet mein JS Wissen hier. Ich hab keine Ahnung, wie ich das richtig in das Plugin implementiere, oder eine Erweiterung dafür schreibe. Falls das also jemand erklären oder übernehmen könnte, fänd ich das sehr sehr nice