سؤال

 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 وارتفاع (الذي التحديث فقط بمجرد إكمال تغيير الحجم)

نصائح أخرى

أن تكون أكثر دقة في هذا، يتم الإعلان عن عرض المشهد والارتفاع بأنه "جمهورية". هذا يعني أنه لا يمكن ضبطه إلا في وقت التهيئة. ربط الارتباط بالارتفاع في كائن المشهد يعني الحرفي سيتم تحديث الارتفاع، وبالتالي الخطأ. يتم الإعلان عن عرض المرحلة والطول على أنه "عام" معنى يمكن تحديثه.

يجب ألا تربط أبعاد المشهد على أي شيء. في الغالب لأن أبعاد المشهد لن يتم تحديثها عندما يحاول المستخدم تغيير حجم النافذة المحتوية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top