Pregunta

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

¿Por qué funciona el ancho, pero no la altura? Y, ¿qué puedo hacer para solucionar este problema? Netbeans está diciendo:

  

altura tiene la escritura única (por defecto) se unen en el acceso javafx.scene.Scene

¿Fue útil?

Solución

Ok, lo he descubierto:

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

A pesar de que, en realidad no es necesario especificar el ancho y el alto aquí, porque puedo acceder a ellos a través de la variable de fase. La anchura y la altura escena actualizaciones cuando el ancho y la altura cambia el escenario. He encontrado que la canvasWidth actualizará mucho mejor cuando se une a la anchura y la altura de la escena en lugar de a la anchura y la altura var (que sólo actualizar una vez que el cambio de tamaño es completa)

Otros consejos

Para ser más precisos en esto, la anchura y la altura de la escena se declaran como "público-init". Esto significa que sólo se pueden ajustar en tiempo de inicialización. El aprieto de la altura en el objeto de escena literal implica que la altura se actualizará, por lo tanto, el error. anchura y la altura de la etapa se declaran como "público" lo que significa que se pueden actualizar.

No se debe obligar a las dimensiones de la escena a nada. Sobre todo porque las dimensiones de la escena no se actualizarán cuando el usuario intenta cambiar el tamaño de la ventana que contiene.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top