การใช้งานฟังก์ชัน:
1. การใช้คลาสการโหลดรูปภาพ ImageLoader:
1) ใช้คิวการบล็อกเพื่อจัดเก็บรูปภาพ: BlockingQueue image = new ArrayBlockingQueue<>(2);
2) ใช้รูปภาพ eof เพื่อระบุจุดสิ้นสุดของคิวรูปภาพ: Image eof = new WritableImage(1, 1);
3) อ่านรูปภาพที่ระบุเป็นวงวน เนื่องจากเป็นคิวที่บล็อก เธรดจะบล็อกโดยอัตโนมัติเมื่อคิวเต็ม
คัดลอกรหัสรหัส ดังต่อไปนี้:
โมฆะสาธารณะวิ่ง () {
รหัสประจำตัว = 0;
พยายาม {
ในขณะที่ (จริง) {
เส้นทางสตริง = ทรัพยากร [id];
InputStream คือ = getClass().getResourceAsStream(path);
ถ้า (เป็น != null) {
รูปภาพ image = รูปภาพใหม่ (คือ ความกว้าง ความสูง จริง จริง);
ถ้า (!image.isError()) {
รูปภาพ. ใส่ (ภาพ);
-
-
รหัส ++;
ถ้า (id >= resources.length) {
รหัส = 0;
-
-
} จับ (ข้อยกเว้นจ) {
} ในที่สุด {
ถ้า (!ยกเลิก) {
พยายาม {
image.put(eof);
} จับ (InterruptedException e) {
-
-
-
-
2. การใช้เอฟเฟกต์พิเศษ ถ่ายภาพการสลับส่วนโค้งเป็นตัวอย่าง: ขั้นแรกให้กำหนดเอฟเฟกต์พิเศษการเปลี่ยนความยาวการเปลี่ยน: ตั้งเวลาการเปลี่ยนแปลง และความสัมพันธ์ระหว่างจำนวนเรเดียนและเวลา
คัดลอกรหัสรหัส ดังต่อไปนี้:
คลาส lengthTransition ขยายการเปลี่ยนแปลง {
ส่วนโค้ง;
สาธารณะความยาวการเปลี่ยนผ่าน (ระยะเวลา d, ส่วนโค้ง) {
this.arc = ส่วนโค้ง;
setCycleDuration (ง);
-
@แทนที่
โมฆะที่ได้รับการป้องกันสอดแทรก (double d) {
ส่วนโค้ง.setLength(d * 360);
-
-
จากนั้นตั้งค่าเอฟเฟ็กต์ภาพแบบเรียงซ้อน:
คัดลอกรหัสรหัส ดังต่อไปนี้:
group.setBlendMode(BlendMode.SRC_OVER);
ถัดไป.setBlendMode(BlendMode.SRC_ATOP);
และเอฟเฟ็กต์เฟดเอาท์ของภาพก่อนหน้า:
FadeTransition ft = FadeTransition ใหม่ (ระยะเวลาวินาที (0.2), mask2);
สุดท้าย ใช้งานเอฟเฟกต์พิเศษทั้งสองนี้พร้อมกัน:
ParallelTransition pt = ParallelTransition ใหม่ (lt, ft);
การแสดงผล: