JavaFX 1: ligam-se, e modificadores de acesso var
-
05-09-2019 - |
Pergunta
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 que faz o trabalho de largura, mas a altura não? E, o que posso fazer para corrigir isso? Netbeans está dizendo:
altura tem roteiro único acesso bind (default) em javafx.scene.Scene
Solução
Ok, eu descobri-lo:
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
}
}
}
Embora, eu realmente não precisa especificar a largura e altura aqui, porque eu posso aceder a estes através da variável palco. A largura cena e atualizações de altura quando a largura palco e altura mudanças. Descobri que o canvasWidth atualizará muito melhor quando ligado à largura cena e altura, em vez de para a largura e altura var (que só atualizar uma vez que o redimensionamento é completa)
Outras dicas
Para ser mais preciso sobre isso, largura e altura do Cena são declarados como "public-init". Isso significa que eles só pode ser definida em tempo de inicialização. A ligação em altura no literal Cena objeto implica que altura será atualizado, daí o erro. largura e altura do Stage são declarados como "público" o que significa que pode ser atualizado.
Você não deve ligar as dimensões de cena para nada. Principalmente porque as dimensões cena não vai ficar atualizado quando o usuário tenta para redimensionar a janela que contém.