الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية عمل Animation في J2ME

مغلق
بدأه مجدي محمود في 1 أكتوبر 2004 · 2 رد · 3,572 مشاهدة · في JavaME
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كيفية عمل Animation في J2ME ,,

ساقوم بشرح مثال لكيفية عمل رسومات متحركة باستخدام J2ME وهو عبارة عن دائرة كاملة ملونة ويختفي اللون بشكل تدريجي الى ان تصبح الدائرة باللون الابيض مثل الساعة تماما

لعمل ذلك نحتاج الى الحزمة

import javax.microedition.lcdui.*;

public class StopWatchCanvas extends Canvas implements Runnable{

سنستخدم الاسلوب paint()-Method لذلك تكون الميدليت مشتقة من Canvas و Runnable حتى نستطيع استخدام

Display display;
display.callSerially(this);

وهذا الاسلوب حتى نستطيع القيام باضافة حدث معين مثل حركة او الافضل نضيف Thread

حتى نستطيع اعادة تنفيذ الاوامر الموجودة في paint لابد ان نستخدم اسلوب اخر ونسميه run ونكتب فيه repaint وكيفية البدء في الرسم واعادة ذلك وهنا يتم حساب رقم الدرجة(الزاوية بالدرجات يعني رسمdrawArc في الدائرة قوس قوس) الحالي ومن ثم اعادة الرسمpaint عن طريق repaint

public void run()

{

  int permille=(int)((System.currentTimeMillis()-startTime)/seconds);
  degree = 360 -(permille*360)/1000;
  repaint();
}

وهذا هو الكلاس المهم في البرنامج وخير طريقة للفهم السؤال

import javax.microedition.lcdui.*;

public class StopWatchCanvas extends Canvas implements Runnable{

int degree = 360;
long startTime;
int seconds;
Display display;

public StopWatchCanvas ( Display display, int seconds)

{
this.display =display;
this.seconds = seconds;
startTime =System.currentTimeMillis();
}
public void paint (Graphics g)

{
g.setGrayScale(255);
g.fillRect(0,0,getWidth(),getHeight());
if(degree>0){
                   g.setColor(255,0,0);
                   g.fillArc(0,0,getWidth(),getHeight(),90,degree);
                   display.callSerially(this); 
                   }
                   g.setGrayScale(0);
                   g.drawArc(0,0,getWidth()-1,getHeight()-1,0,360);
                   
}

public void run()

{

  int permille=(int)((System.currentTimeMillis()-startTime)/seconds);
  degree = 360 -(permille*360)/1000;
  repaint();
}

}

لست متواجد بشكل يومي

#2

وهذا هو البرنامج كاملا وارجو ممن لم يفهم شيئا ان يسال لانها افضل طريقة للفهم

ANIM.jpg

Animation.zip

تم تعديل هذه المشاركة بواسطة مجدي محمود في 1 أكتوبر 2004 في 09:20

لست متواجد بشكل يومي

#3

شكراً لك أخي مجدي على هذا الشرح

وجاري... التجربة

هذا الموضوع مغلق.

مواضيع مشابهة