المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : جولة حول اكشن سكريبت 3 - الرسم في فلاش


azizsoft
25-03-2014, 07:25 PM
http://www.abc4web.net/upload/images2/7ttwvwqjnkozmy1.png
http://www.abc4web.net/upload/images2/wcofafsmm21ires.png


الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته



سنحاول في هذ الدرس ان شاء الله التعرف على كيفية الرسم في برنامج الفلاش عن طريق الماوس بطريقة مبسطة وسينم اثراء الموضوع لاحقا
ان شاء الله في شرح نظم الألوان وتطبيقها .

اذن افتح أخي برنامج الفلاش وتابع معي التطبيق

بداية لابد أن نفهم انه لايمكننا تطبيق أي رسم الا اذا قمنا بانشاء DisplayObject لنرسم داخله ما نريد لذلك نتوجه مباشرة الى كلاس
flash.display.Shape


الخطوة الأولى :

نقوم بانشاء عنصر shape لنرسم داخله وسيكون الكود التالي :


// انشاء عنصر من نوع شايب
var monDessin:Shape = new Shape();
// اضافة هذا العنصر في قائمة العرض
addChild ( monDessin );



الخطوة الثانية :


الان سنضيف الكود الخاص بتمكين الماوس من الرسم داخل العنصر المذكور وسيكون الكود كالتالي :


// حدث الاستماع في حالة الضغط المتواصل على الماوس
stage.addEventListener ( MouseEvent.MOUSE_DOWN, clicSouris );
function clicSouris ( pEvt:MouseEvent ):void
{
// تخزين احداثيات الماوس عند الضغط في اي مكان
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
}




الخطوة الثالثة:


الان يجب علينا أن نضيف أوامر الرسم وبالتالي وجب اضافة بعض خصائص الكلاس graphics
وباضافة سطر اخر للكود أعلاه يصبح كالتالي :

// انشاء عنصر من نوع شايب
var monDessin:Shape = new Shape();
// اضافة العنصر الى قائمة العرض
addChild ( monDessin );
// حدث الاستماع في حالة الضغط المتواصل على الماوس
stage.addEventListener ( MouseEvent.MOUSE_DOWN, clicSouris );
function clicSouris ( pEvt:MouseEvent ):void
{
// تخزين احداثيات الماوس عند الضغط في اي مكان
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
// بداية الرسم انطلاقا من هاته النقطة التي ضغط عليها المستخدم
monDessin.graphics.moveTo ( positionX, positionY );
}


لاحظ اخي الكريم أنه عند معاينة المشروع Ctrl +Enter لن يحدث أي شىء ولن تستطيع الرسم لاننا ببساطة لن نضيف أمر الرسم
عبر تحريك الماوس لذلك سنستغل الدالة lineTo


الخطوة الرابعة:


الان يجب الاستماع الى حدث MouseEvent.MOUSE_MOVE وبالتالي نضيف هذا الأمر ليصبح الكود كما يلي



// انشاء عنصر من نوع شايب
var monDessin:Shape = new Shape();
// اضافة العنصر الى قائمة العرض
addChild ( monDessin );
// حدث الاستماع في حالة الضغط المتواصل على الماوس
stage.addEventListener ( MouseEvent.MOUSE_DOWN, clicSouris );
function clicSouris ( pEvt:MouseEvent ):void
{
// تخزين احداثيات الماوس عند الضغط في اي مكان
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
// بداية الرسم انطلاقا من هاته النقطة التي ضغط عليها المستخدم
monDessin.graphics.moveTo ( positionX, positionY );

// عند بداية ضغط المستخدم سنستمع الى هذا الحدث الخاص بتحريك الماوس
pEvt.currentTarget.addEventListener ( MouseEvent.MOUSE_MOVE, bougeSouris );
}


وأسفله هذا نضيف الأوامر التي يجب تنفيذها عند تحريك الماوس وتكون كما يلي :

function bougeSouris ( pEvt:MouseEvent ):void
{
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
// نهاية الرسم في النقطة الثانية لاحداثيات الماوس
monDessin.graphics.lineTo ( positionX, positionY );
}



الخطوة الخامسة :


حدننا الأن أوامر بداية الرسم ونهايته عبر حدثي ضغط الماوس وتحريكها وما علينا الا أن نحدد بعد ذلك نوع الخط ولونه
لذلك سنستغل الدالة lineStyle من كلاس Graphics وهذا هو الأمر


// 4 = سمك الخط - 0x990000 = لونه - 1 = الشفافية
monDessin.graphics.lineStyle ( 4 , 0x990000, 1 );




الخطوة السادسة:


يجب علينا الان أن نحذف حدث الاستماع MouseEvent.MOUSE_MOVE يعني عند مواصلة ضغط المستخدم
للرسم ورفع اصبعه سيجد مشكلة وبالتالي يجب علينا اضافة حدث MouseEvent.MOUSE_UP وسيكون الأمر كالاتي :



stage.addEventListener ( MouseEvent.MOUSE_UP, relacheSouris );
function relacheSouris ( pEvt:MouseEvent ):void
{
// حذف حدث الاستماع MouseEvent.MOUSE_MOVE
pEvt.currentTarget.removeEventListener ( MouseEvent.MOUSE_MOVE, bougeSouris);
}



الكود النهائي لما سبق ذركره سيكون كما يلي :



// انشاء عنصر من نوع شايب
var monDessin:Shape = new Shape();
// اضافة العنصر الى قائمة العرض
addChild ( monDessin );
// حدث الاستماع في حالة الضغط المتواصل على الماوس
stage.addEventListener ( MouseEvent.MOUSE_DOWN, clicSouris );

function clicSouris ( pEvt:MouseEvent ):void
{
// تخزين احداثيات الماوس عند الضغط في اي مكان
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
// بداية الرسم انطلاقا من هاته النقطة التي ضغط عليها المستخدم
monDessin.graphics.moveTo ( positionX, positionY );

// عند بداية ضغط المستخدم سنستمع الى هذا الحدث الخاص بتحريك الماوس
pEvt.currentTarget.addEventListener ( MouseEvent.MOUSE_MOVE, bougeSouris );
}


function bougeSouris ( pEvt:MouseEvent ):void
{
var positionX:Number = pEvt.stageX;
var positionY:Number = pEvt.stageY;
// نهاية الرسم في النقطة الثانية لاحداثيات الماوس
monDessin.graphics.lineTo ( positionX, positionY );
// 4 = سمك الخط - 0x990000 = لونه - 1 = الشفافية
monDessin.graphics.lineStyle ( 4 , 0x990000, 1 );

}


stage.addEventListener ( MouseEvent.MOUSE_UP, relacheSouris );
function relacheSouris ( pEvt:MouseEvent ):void
{
// حذف حدث الاستماع MouseEvent.MOUSE_MOVE
pEvt.currentTarget.removeEventListener ( MouseEvent.MOUSE_MOVE, bougeSouris);
}





تطبيق على الشرح اضغط وارسم بالماوس

http://im50.gulfup.com/PLekrx.swf


الملف المفتوح في المرفقات







لاتنسونا من صالح الدعـــــــــــــــاء

بالتوفيق للجميع



http://www.abc4web.net/upload/images2/wcofafsmm21ires.png

ثامر أبو بلقيس
26-03-2014, 12:33 PM
شكرا جزيلا
ودي وتقديري :abc_138:

أبو يوسف
26-03-2014, 02:56 PM
جزاك الله خيرا اخانا عزيز :abc_152: وبارك الله فيك :abc_022:

أبو فارس
26-03-2014, 03:46 PM
بوركت جهودك المتميزة .

موفق بإذن الله ... لك مني أجمل تحية . :abc_152:

كريم جودي
28-03-2014, 01:31 AM
جزاك الله خيرا اخي عزيز

abohmam
13-04-2014, 11:27 PM
:teslam_2:

جزاك الله خيرا أخى الفاضل عزيز

بارك فى جهودك المولى

سالارشوانى
25-05-2014, 06:38 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

وفاء نجاح
10-11-2014, 07:41 PM
رائع
:abc_152:

azizsoft
10-11-2014, 09:39 PM
بسم الله الرحمن الرحيم

بارك الله فيكم جميعا
أشكر لكم ردودكم الطيبة

المبرمج المبتدئ
13-12-2014, 04:41 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

زينب علي
01-08-2015, 11:38 PM
بارك الله فيكم على هالجهد المبذول

ساندى كريم
16-10-2015, 10:15 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

لبيب محمد لبيب
08-11-2015, 06:37 PM
مشكورا اخي على هذا البرنامج الرائع

الموسوعة للمعلوماتية
15-02-2016, 12:04 PM
نفع الله بكم

عزيز عبدو
07-05-2016, 08:07 PM
thanks MR aziz

mastof
17-05-2016, 01:07 PM
حفظكم الله وزادكم علما ورزقا

فكرفكر
29-08-2016, 02:49 AM
السلام عليكم ورحمة الله وبركاته
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

امرغاد
29-08-2016, 03:22 PM
السلام عليكم ورحمة الله وبركاته

امرغاد
29-08-2016, 03:50 PM
تطبيق جيد و تزداد اهميته لو تم إظافة زر للمسح او تراجع عن الرسم

اميجو
13-12-2016, 09:12 PM
مشكووووووووور

كوكب الخليج
26-12-2016, 07:23 AM
بارك الله فيكم

الموسوعة للمعلوماتية
26-12-2016, 12:17 PM
نفع الله بك , هل يمكن تطوير الفكرة بتحويل مؤشر الفأرة إلى قلم , ثم اختيار سماكة للخط , وكذلك اختيار لون من مجموعة ألوان

وشكرا

عبد الهادي بهاب
28-12-2016, 11:29 PM
بارك الله فيك
محاولة استاذ عزيز
للاخوةارسم كما تريد

width=400 height=350

azizsoft
29-12-2016, 12:17 AM
نفع الله بك , هل يمكن تطوير الفكرة بتحويل مؤشر الفأرة إلى قلم , ثم اختيار سماكة للخط , وكذلك اختيار لون من مجموعة ألوان

وشكرا



طبعا أخي الكريم بالفلاش يمكن أن تصمم ما تريد ان شاء الله
الاختيار بين الالوان قدمناه في الدرس الاخير
واختيار ماوس خاص كقلم ممكن وسهل .

azizsoft
29-12-2016, 12:18 AM
بارك الله فيك
محاولة استاذ عزيز
للاخوةارسم كما تريد

width=400 height=350



تطبيق جميل أخي المحترف
بارك الله فيكم :abc_022:

عبد الهادي بهاب
29-12-2016, 12:56 PM
تطبيق جميل أخي المحترف
بارك الله فيكم :abc_022:

حاولت ان اضيف زر ثم هو يختار عشوائيا لون معين
لم افلح هل ممكن مساعدة سيدي الكريم

azizsoft
29-12-2016, 03:13 PM
حاولت ان اضيف زر ثم هو يختار عشوائيا لون معين
لم افلح هل ممكن مساعدة سيدي الكريم


http://www.abc4web.net/vb/showthread.php?t=34701

ادبها
23-03-2018, 12:16 AM
شكرا لك جزيل الشكر
رحمة الله على والديك

اابراهيم
26-12-2018, 06:49 AM
السلام عليكم ورحمة الله وبركاته
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .
موفق بإذن الله ... لك مني أجمل تحية . :abc_152:

امجدمحمد
06-04-2019, 08:55 AM
موفق بإذن الله ... لك مني أجمل تحية .

حسين جهاد
21-05-2020, 10:10 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية . :abc_022::abc_022:

امبراطور الحريه
18-08-2020, 07:22 PM
شـكــ وبارك الله فيك ـــرا لك ... لك مني أجمل تحية .

عبدالصادق المغربي
26-08-2020, 01:04 PM
بوركت جهودك المتميزة .