JavaFXطريقة إضافة التأثير Translate Transition
المثال التالي يعلمك كيف تضيف التأثير Translate Transition لأي شيء تنوي وضعه في النافذة.
فعلياً, جعلنا النص يتحرك من مكانه للأسفل بنسبة 80 بيكسل كل 0.8 ثانية، ثم يرجع لمكانه الأصلي الذي كان موضوعاً فيه قبل أن يتحرك.
مثال
import javafx.animation.TranslateTransition; import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.layout.StackPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; import javafx.util.Duration; public class Main extends Application { public void start(Stage stage) { // يمثل النص الذي نريد إضافته في النافذة Text هنا قمنا بإنشاء كائن من الكلاس Text text = new Text("HARMASH.COM"); // بالإضافة إلى لونه text هنا قمنا بتحديد نوع و حجم خط الكائن text.setFont(new Font("Tahoma", 30)); text.setFill(Color.RED); text.setStroke(Color.BLACK); StackPane.setMargin(text, new Insets(-80, 0, 0, 0)); // و الذي سيتيح لنا إضافة تأثير التحرك على أي شيء نربطه به TranslateTransition هنا قمنا بإنشاء كائن من الكلاس TranslateTransition translateTransition = new TranslateTransition(); // عندما يتم تشغيله translateTransition هنا قمنا بتحديد المدة التي سيتنفذ خلالها التأثير الذي يمثل الكائن translateTransition.setDuration(Duration.seconds(0.8)); // text سيتم تطبيقه على الكائن translateTransition هنا حددنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن translateTransition.setNode(text); // هو التحرك للأسفل بنسبة 80 بيكسل translateTransition هنا قلنا أن التأثير الذي سنحصل عليه عند تشغيل الكائن translateTransition.setByY(80); // هنا وضعنا 1- للإشارة إلى أننا لا نريد أن يتم إيقاف التأثير translateTransition.setCycleCount(-1); // كلما تم تشغيله translateTransition هنا قلنا أننا نريد أن يتم إرجاع التأثير الذي يفعله الكائن translateTransition.setAutoReverse(true); // translateTransition هنا قمنا بتشغيل التأثير الذي يمثله الكائن translateTransition.play(); // في النافذة Root Node لأننا ننوي جعله الـ StackPane هنا قمنا بإنشاء كائن من الكلاس StackPane root = new StackPane(); // root في الكائن text هنا قمنا بإضافة الكائن root.getChildren().addAll(text); // فيها و تحديد حجمها Node كأول root هنا قمنا بإنشاء محتوى النافذة مع تعيين الكائن Scene scene = new Scene(root, 400, 250); // هنا وضعنا عنوان للنافذة stage.setTitle("Translate Transition Example"); // أي وضعنا محتوى النافذة الذي قمنا بإنشائه للنافذة .stage في كائن الـ scene هنا وضعنا كائن الـ stage.setScene(scene); // هنا قمنا بإظهار النافذة stage.show(); } // هنا قمنا بتشغيل التطبيق public static void main(String[] args) { launch(args); } }
ستظهر لك النافذة التالية عند التشغيل.