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

幅は機能するのに、高さは機能しないのはなぜですか? そして、これを修正するにはどうすればよいですか? Netbeans は次のように言っています。

高さには、javafx.scene.Scene でのスクリプトのみ (デフォルト) のバインド アクセス権があります。

4

3 に答える 3

2

わかりました、私はそれを理解しました:

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

ただし、ステージ変数を介してこれらにアクセスできるため、ここで幅と高さを指定する必要はありません。ステージの幅と高さが変わると、シーンの幅と高さが更新されます。canvasWidth は、var の幅と高さ (サイズ変更が完了するとのみ更新される) ではなく、シーンの幅と高さにバインドされた方がはるかによく更新されることがわかりました。

于 2009-05-24T22:24:25.760 に答える
1

より正確に言うと、シーンの幅と高さは「public-init」として宣言されています。これは、初期化時にのみ設定できることを意味します。シーン オブジェクト リテラルの高さのバインドは、高さが更新されることを意味するため、エラーが発生します。ステージの幅と高さは、更新できることを意味する「パブリック」として宣言されます。

于 2009-08-27T14:00:41.007 に答える
0

シーンの寸法を何にもバインドしないでください。ほとんどの場合、ユーザーが含まれているウィンドウのサイズを変更しようとすると、シーンの寸法が更新されないためです。

于 2009-05-24T09:36:30.800 に答える