Frage

 var width = 400;
 var height = 400;

Stage {
    style: StageStyle.TRANSPARENT

    onClose: function():Void {
       System.exit(0);
    }

    scene: Scene {
        content: Scribble {}
        width: width
        height: bind height
    }
}

Warum funktioniert die Breite der Arbeit, aber die Höhe nicht? Und was kann ich tun, um dieses Problem beheben? Netbeans sagt:

  

Höhe hat Skript nur (Standard) binden Zugang in javafx.scene.Scene

War es hilfreich?

Lösung

Ok, ich es herausgefunden:

var width : Number = 400;
var height : Number = 400;

var stage:Stage = Stage {
    width: bind width with inverse
    height: bind width with inverse
    scene: Scene {
      content: Scribble {
                 canvasWidth: bind stage.scene.width
                 canvasHeight: bind stage.scene.height
               }
    }
}

Obwohl ich nicht wirklich brauche, um die Breite und Höhe hier angeben, weil ich diese über die Bühne Variable zugreifen kann. Die Szene Breite und Höhe aktualisiert, wenn die Stufenbreite und Höhe verändert. Ich habe festgestellt, dass die canvasWidth wird viel besser aktualisieren, wenn auf die Szene Breite und Höhe und nicht auf die var Breite und Höhe gebunden (die nur aktualisieren, sobald die Größe ändert abgeschlossen ist)

Andere Tipps

auf diese genauer zu sein, die Breite und die Höhe der Szene als „öffentlich-init“ erklärt. Das heißt, sie kann nur bei der Initialisierung festgelegt werden. Die bind auf Höhe in der Szene Objektliteral bedeutet, dass Höhe, den Fehler daher aktualisiert werden. Die Bühne Breite und Höhe sind als „öffentlich“ deklariert dh sie können aktualisiert werden.

Sie sollten nicht die Szene Dimensionen etwas binden. Vor allem, weil die Szene Dimensionen werden nicht aktualisiert, wenn der Benutzer das Fenster enthält, um die Größe versucht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top