Domanda

 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
    }
}

Perché il lavoro di larghezza, ma l'altezza non è? E, cosa posso fare per risolvere questo problema? Netbeans sta dicendo:

  

altezza ha scritto solo (default) l'accesso si legano in javafx.scene.Scene

È stato utile?

Soluzione

Ok, ho capito:

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
               }
    }
}

Anche se, non ho davvero bisogno di specificare la larghezza e l'altezza qui, perché posso accedere a questi attraverso la variabile palco. La larghezza e l'altezza scena aggiornamenti quando la larghezza e l'altezza palcoscenico cambia. Ho scoperto che il canvasWidth aggiornerà molto meglio quando si lega alla larghezza e l'altezza scena, piuttosto che la larghezza e l'altezza var (che aggiornare solo una volta che il ridimensionamento è completo)

Altri suggerimenti

Per essere più precisi su questo, larghezza e l'altezza della scena sono dichiarati come "pubblico-init". Questo significa che possono essere impostate solo in fase di inizializzazione. Il legato sulla altezza in oggetto scena letterale implica che l'altezza sarà aggiornato, da qui l'errore. larghezza e l'altezza dello stage vengono dichiarati come "pubblico" nel senso che possono essere aggiornati.

Non si dovrebbe vincolare le dimensioni di scena a nulla. Soprattutto perché le dimensioni della scena non saranno aggiornati quando l'utente tenta di ridimensionare la finestra che contiene.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top