تشغيل عروض الشرائح والرسوم المتحركة
استخدم الأمثلة لتوضيح كيفية تشغيل الشرائح والرسوم المتحركة.
[مثال] يقرأ التطبيق الصغير أولاً الشرائح في مصفوفة ويخزنها، ثم ينقر بالماوس لتغيير الشرائح وعرضها واحدة تلو الأخرى.
import java.applet.*import java.awt.*;import java.awt.event.*;public class example7_7 Extends Appletlets MouseListener{ Final int number = 50; // افترض أن هناك 50 شريحة int count = 0; ] Card = new Image[number]; public void init(){ addMouseListener(this); for (int i = 0; i < number; i++){ Card[i] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); , 10, Card[count].getWidth(this),card[count].getHeitht(this), this } public void mousePressed(MouseEvent e){ count = (count + 1) % number; // حلقة وعرض إعادة الطلاء () } public void mouseRelease(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(Mouse Event) e){} public void mouseClicked(MouseEvent e){}}
[مثال] يشرح التطبيق الصغير كيفية تشغيل الرسوم المتحركة ويتطلب تشغيل الصور ووضع التطبيق الصغير في نفس الدليل. يقوم البرنامج بإنشاء تأثير عرض الرسوم المتحركة عن طريق عرض مجموعة من الصور بسرعة. يستخدم التطبيق الصغير الخيوط للتحكم في عرض الصور المتحركة واحدة تلو الأخرى.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_8 تمديدات التطبيق الصغير Runnable{ Final int number = 50; new Image[number]; public void init(){ setSize(300, 200); for (int i = 0; i <= number; i++){ // تحميل الصور المتحركة pic[i - 1] = getImage(getCodeBase(), "DSC0033" + i + ".jpg"); } } public void start(){ mythread = new Thread(this); thread legend.start(); // ابدأ تنفيذ الموضوع} public void stop(){ legendread = null } public void run(){ // رمز تنفيذ الموضوع while (true){ repaint(); = (count + 1) % number; // تغيير رقم الصورة المعروضة حاول{ mhythread.sleep(200); != null) g.drawImage(pic[count], 10, 10, pic[count].getwidth(this), pic[count].getHeight(this), هذا)؛ }}
تشغيل الصوت
هناك العديد من تنسيقات الصوت في القاعدة القديمة للغة Java: au، aiff، wav، midi، rfm، إلخ. لتشغيل الملفات الصوتية في برنامج صغير، يمكنك استخدام فئة AudioClip، التي تم تعريفها في مكتبة فئة java.applet.AudioClip. يقوم التطبيق الصغير أولاً بإنشاء كائن AudioClip وتهيئته باستخدام طريقة getAudioClip(). نموذج الكود هو كما يلي:
AudioClip audioClip = getAudioClip(getCodeBase(),"myAudioClipFile.au");
إذا كنت ترغب في الحصول على ملف صوتي من الإنترنت، فيمكنك استخدام الطريقة getAudioClip(URL url, String name) للحصول على كائن صوتي قابل للتشغيل بناءً على عنوان URL واسم الملف الصوتي.
هناك ثلاث طرق للتحكم في تشغيل الصوت: play() لتشغيل الصوت، وloop() لتكرار التشغيل، وstop() لإيقاف التشغيل.
[مثال] تطبيق صغير يمكنه تشغيل الأصوات.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class example7_9 Extends Applet Implements ActionListener{ مقطع AudioClip; // الإعلان عن كائن صوتي Button ButtonPlay, ButtonLoop, ButtonStop; (){ clip = getAudioClip(getCodeBase(), "2.wav"); // أنشئ كائنًا صوتيًا بناءً على ملف الصوت 2.wav على عنوان البرنامج، // يمكن لطريقة getCodeBase () لفئة التطبيق الصغير الحصول على عنوان URL لصفحة html حيث يوجد التطبيق الصغير. ButtonPlay = new Button("ابدأ اللعب"); ButtonLoop = new Button("Loop play"); (هذا)؛ add(buttonPlay); add(buttonLoop); // توقف عن اللعب عند مغادرة هذه الصفحة} public void actionPerformed(ActionEvent e){ if (e.getSource() == ButtonPlay){ clip.play() } else if (e.getSource() == ButtonLoob){ clip .loop(); } else if (e.getSource() == ButtonStop){ clip.stop();
[مثال] إذا كان ملف الصوت كبيرًا أو كانت سرعة الشبكة بطيئة، فسيؤثر ذلك على تهيئة البرنامج الصغير. يمكن حل هذه المشكلة باستخدام تقنية الخيوط المتعددة. يتم إكمال إنشاء كائن الصوت في سلسلة رسائل ذات مستوى أدنى، أي أنه يتم تحميل الملف الصوتي في الخلفية وتشغيله في المقدمة.
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Hanoi Extends appletlets Runnable, ActionListener{ مقطع AudioClip; // الإعلان عن كائن صوتي textField thread thread; , ButtonLoop, ButtonStop; public void init(){ thread = new Thread(this); .setPriority(Thread.MIN_PRIORITY); ButtonPlay = new Button("ابدأ اللعب"); ButtonLoop = new Button("Loop play"); .addActionListener(this); ButtonStop.addActionListener(this); add(buttonLoop); add(buttonStop); add(text); إذا (e.getSource() == ButtonPlay(){ clip.play(); } وإلا إذا (e.getSource() == ButtonLoop(){ clip.loop(); } وإلا إذا (e.getSource() == ButtonStop(){ clip.stop(); } } public void run(){ // إنشاء مقطع كائن صوتي في مؤشر الترابط thread = getAudioclip(getCodeBase(), "2.wav"); نص .setText("يرجى الانتظار"); if(clip ! = null){ ButtonPlay.setBackground(Color.red); text.setText("يمكنك اللعب"); } // بعد الحصول على كائن الصوت، يمكن تشغيل الإشعار}}