Javafx 1: ربط معدلات الوصول
-
05-09-2019 - |
سؤال
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
المحلول
حسنا، احسبها:
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 وارتفاع (الذي التحديث فقط بمجرد إكمال تغيير الحجم)
نصائح أخرى
أن تكون أكثر دقة في هذا، يتم الإعلان عن عرض المشهد والارتفاع بأنه "جمهورية". هذا يعني أنه لا يمكن ضبطه إلا في وقت التهيئة. ربط الارتباط بالارتفاع في كائن المشهد يعني الحرفي سيتم تحديث الارتفاع، وبالتالي الخطأ. يتم الإعلان عن عرض المرحلة والطول على أنه "عام" معنى يمكن تحديثه.
يجب ألا تربط أبعاد المشهد على أي شيء. في الغالب لأن أبعاد المشهد لن يتم تحديثها عندما يحاول المستخدم تغيير حجم النافذة المحتوية.