Generell wird von dem, was du in das Fenster malen lässt nichts "upgedatet".
Sobald du etwas anderes im Fenster stehen haben willst musst du also die Bildfläche mit dem neuen Inhalt übermalen.

In den Fensterklassen des Standard-Skriptsets übernimmt die Methode refresh in der Regel diese Funktion, in der zuerst via
contents.clear
der alte Inhalt des Fensters gelöscht wird um anschließend den neuen Inhalt zu malen.
Mit Fensterinstanz.refresh kannst du somit, wenn notwendig, jederzeit ein Neuzeichnen des Fensters erzwingen.


An dieser Stelle einfach via

@skill_window2 = Skill2.new(@actor, @skill_window.skill)

ein neues Fenster zu erstellen führt natürlich auch irgendwie zum Ziel...
Allerdings ist es geraten vor dem Löschen von alten Fenstern diese zunächst freizugeben:
Das passiert einfach mit dem Aufruf der Methode dispose.


(Hoffe mal meine Interpretation des Problems war nicht zuuu sehr am Thema vorbei... ansonsten schließ ich mal den Code-Anfragen der anderen an )