ขั้นตอนการดำเนินการ: 1. กำหนดวัตถุ FlipView ประกอบด้วยคุณสมบัติดังต่อไปนี้:
คัดลอกรหัสรหัส ดังต่อไปนี้:
//มุมมองด้านหน้า
โหนดสาธารณะ frontNode;
//มองย้อนกลับ
โหนดสาธารณะ backNode;
//ไม่ว่าจะพลิก.
บูลีนพลิก = false;
//พลิกมุม
เวลา DoubleProperty = SimpleDoubleProperty ใหม่ (Math.PI / 2);
//เอฟเฟกต์พิเศษพลิกหน้า
PerspectiveTransform frontEffect = PerspectiveTransform ใหม่ ();
//เอฟเฟกต์พิเศษการพลิกกลับ
PerspectiveTransform backEffect = PerspectiveTransform ใหม่();
วิธีการสร้างผลตอบแทนเนื้อหาที่จะแสดง:
คัดลอกรหัสรหัส ดังต่อไปนี้:
โมฆะส่วนตัวสร้าง () {
time.addListener (เปลี่ยนรายการใหม่ () {
@แทนที่
โมฆะสาธารณะมีการเปลี่ยนแปลง (ObservableValue<? ขยาย Number> arg0,
หมายเลข arg1, หมายเลข arg2) {
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
-
-
anim.getKeyFrames().addAll(frame1, frame2);
backNode.visibleProperty().ผูก(
Bindings.when(time.lessThan(0)).then(true).มิฉะนั้น(false));
frontNode.visibleProperty().ผูก(
Bindings.when(time.lessThan(0)).then(false).มิฉะนั้น(true));
setPT(frontEffect, time.get());
setPT(backEffect, time.get());
frontNode.setEffect(ฟรอนต์เอฟเฟกต์);
backNode.setEffect(แบ็คเอฟเฟค);
getChildren().addAll(backNode, frontNode);
-
สิ่งที่ต้องสังเกตในโค้ดด้านบนคือเมื่อค่าเวลาเปลี่ยนแปลง ค่าของ frontEffect และ BackEffect ก็จะเปลี่ยนไปเช่นกัน 2. การใช้เอฟเฟกต์พิเศษ PerspectiveTransform ใช้วิธีการ Math.sin() และ Math.cos() เพื่อจำลองการแปลงมุม 3 มิติ การใช้งานเฉพาะมีดังนี้:
คัดลอกรหัสรหัส ดังต่อไปนี้:
setPT โมฆะส่วนตัว (PerspectiveTransform pt, double t) {
ความกว้างสองเท่า = 200;
ความสูงสองเท่า = 200;
รัศมีสองเท่า = ความกว้าง / 2;
หลังคู่ = ความสูง / 10;
pt.setUlx(รัศมี - Math.sin(t) * รัศมี);
pt.setUly(0 - Math.cos(t) * กลับ);
pt.setUrx(รัศมี + Math.sin(t) * รัศมี);
pt.setUry(0 + Math.cos(t) * กลับ);
pt.setLrx(รัศมี + Math.sin(t) * รัศมี);
pt.setLry(ความสูง - Math.cos(t) * กลับ);
pt.setLlx(รัศมี - Math.sin(t) * รัศมี);
pt.setLly(ความสูง + Math.cos(t) * ด้านหลัง);
-
3. การแปลงมุมเปลี่ยนจาก 3.14/2 เป็น -3.14/2 ใน 1 วินาที
คัดลอกรหัสรหัส ดังต่อไปนี้:
KeyFrame frame1 = KeyFrame ใหม่ (ระยะเวลาเป็นศูนย์, KeyValue ใหม่ (เวลา,
Math.PI / 2, Interpolator.LINEAR));
KeyFrame frame2 = KeyFrame ใหม่ (ระยะเวลาวินาที (1)
ใหม่ EventHandler() {
@แทนที่
โมฆะสาธารณะจัดการ (เหตุการณ์ ActionEvent) {
พลิก = !พลิก;
-
}, KeyValue ใหม่ (เวลา, -Math.PI / 2, Interpolator.LINEAR));
4. การสร้างวัตถุ FlipView: วัตถุ FlipView สามารถสร้างได้อย่างง่ายดายผ่านตัวสร้าง
คัดลอกรหัสรหัส ดังต่อไปนี้:
ImageView image1 = ImageView ใหม่ (รูปภาพใหม่ (getClass ()
.getResourceAsStream("lion1.png")));
ImageView image2 = ImageView ใหม่ (รูปภาพใหม่ (getClass ()
.getResourceAsStream("lion2.png")));
FlipView flip = FlipView ใหม่ (รูปภาพ 1, รูปภาพ 2);
5. การแสดงผล: