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

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top