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

مشاهدة النسخة كاملة : الدرس 23 استنساخ الكائنات و حذفها عن طريق الامر duplicateMovieClip


الاستاذ خليل
09-13-2010, 08:34 PM
السلام عليكم

السلام عليكم

اضغط هنا لتحميل الدرس (http://www.hesab.net/swishmax3/52.exe)

و في النهاية سيكون التطبيق كالتالي
http://www.hesab.net/swishmax3/52.swf (http://www.hesab.net/swishmax3/52.swf)


و هذا ملف المشروع مع الاكواد
http://www.hesab.net/swishmax3/52.swi (http://www.hesab.net/swishmax3/52.swi)

و لعمل النسخ

هذا الكود مثلا يعني

s.duplicateMovieClip("s1", 1);



قم بنسخ الكائن s و سم النسخة الجديدة s1 و رقم النسخة هي 1.



و لعمل اكثر من نسخة لاي كائن سواء اكان موفي كلب او شكل او صورة ...الخ
يجب علينا احتساب عدد الكائنات فنعرفها بحدث lode اذن :
قم بالضغط على السين او اي مكان فاضي في الشريحة و اختر سكربت و الصق هذا الكود


onSelfEvent (load) {
var sum : Number = 0
}



الان اصنع موفي كلب و ليكن اسمه s و قم بجعله target

اكتب نسخ من خلال مربع النص و اختر سكربت و الصق به هذا الكود


on (press) {
_root.sum+=1;
s.duplicateMovieClip("s" + _root.sum , _root.sum);
_root["s" + _root.sum]._xscale=_root["s" + _root.sum]._yscale =Math.randomInt(150);
_root["s" + _root.sum]._x=Math.randomInt(500);
_root["s" + _root.sum]._y=Math.randomInt(400);
}

عندما يتم ضغط النص النسخ

يتم زيادة رقم على أرقاام الأشكال المنسوخة و هي من بداية تشغيل الملف صفر طبعا . و لكن اذا ضغط زر النسخ يصبح العدد 1


s.duplicateMovieClip("s" + _root.sum , _root.sum);
تعني


s.duplicateMovieClip
انسخ الكائن الذي اسمه s


"s" + _root.sum و اجعل اسم النسخة كالتالي الحرف s و الصق معه رقم النسخة اي اسماء النسخة s1-s2-s3-s4 و هكذا
و اول مرة سيكون اسمه s1 لان سيكون الرقم به 1 لان فوق زدنا واحد سيلصق معه الحرف s


_root["s" + _root.sum]._xscale=_root["s" + _root.sum]._yscale =Math.randomInt(150);


يذهب لكل الكائنات و يقوم بتغيير طول و عرض النسخة الى نسخة شوائية تكون اقل من 150% عشوائيا
و كتبنا

root["s" + _root.sum]._
لان الكائن اسمه معتمد على متغير و لكن نعرفه عن طريق اضافة الحرف s و رقم النسخة . الاخيرة



_root["s" + _root.sum]._x=Math.randomInt(500);


يضع النسخة المنسوخة بمكان عشوائي في المستوى الافقي اقل من النقطة 500 اي اقل من طول 500 بكسل

_root["s" + _root.sum]._y=Math.randomInt(400);
يضع النسخة المنسوخة بمكان عشوائي في المستوى العمودي اي الصادات اقل من النقطة 400 اي اقل من عرض 400 بكسل


و اذا اردت حذف الموفي الصق بداخله هذا الاكشن
onSelfEvent (press) {

this.removeMovieClip();
}

و فائدته انه يقوم بحذف الموفي كلب الحالية .




و التطبيق الثاني :

قم بوضع في حدث اللود هذا الكود في السين

onSelfEvent (load) {
var sum : Number = 0
var name : String = ""
}
و به عرفنا متغير رقمي اسمه sum به نحسب عدد النسخ .
و السطر الاخر عرفنا متغير نصي اسمه name و سنستخدمه لحفظ اسم الكائن بعد الضغط عليه.

انشأ النجمة و اجعل اسمها s و لا بد ان تكون target
onSelfEvent (press) {
startDrag(_target, false);
_root.name=_name;

}
onSelfEvent (release) {

stopDrag();
}


و شرحه في الكود الاول عندما سيتم الضغط سيسمح للماوس ان تحرك الكائن بالسحب و الافلات و ثم سيحفظ قيمة نصية في المتغير name و الذي سيحفظ اسم الكائن

اي قلنا له احفظ بذاكرتك (ذاكرة الحاسب الآلي) اسم هذا الكائن الذي تم ضغطه للتو .


و الكود الاخر عندما يفلت المستخدم الكائن سيتم ايقاف السحب للكائن .


انشأ نص و اكتب بداخله النسخ هذا الكود


on (press) {
_root.sum+=1;

s.duplicateMovieClip("s" + _root.sum, _root.sum);
}

و فائدته عندما يضغط عليه المستخدم يتم زيادة رقم في sum اي زيادة عدد النسخ اي حساب رقم جديد للنسخة الاجدد

ثم قلنا له

انسخ الكائن s و اكتب اسمه النص s و ثم الصق عليه رقم النسخة sum و اجعل رقم النسخة هو المتغير sum
و هذا يعني سيكون اسم اول نسخة s1
و االنسخة الثانية s2
و النسخة الثالثة s3 و هكذا

اعمل نص به كلمة حذف و الصق به هذا الكود

on (press) {
_root[_root.name].removeMovieClip();
}

و هو عندما يتم ضغطه يذهب لكل الكائنات و يختار اسم الكائن الموجود بذاكرة الجهاز و ثم يحذفه نهائيا .

و ننتظر تطبيق منكم

و يصلح هذا الموضوع في :
1- لتمثيل الأشكال .
2-اكمل الفراغ بسحب كلمة في الفراغ .
3- الالعاب .

احمد الشريف
09-16-2010, 10:35 PM
درس رائع وجارى عمل التطبيق وقد تأخرت بسبب بدأ العام الدراسى عندنا بشمال سيناء وانا المسؤول عن اعمال الجدول المدرسى وعمل كشوف الطلاب وجزاكم الله خيرا

احمد الشريف
09-19-2010, 07:37 PM
هذا تطبيق سريع على الدرس نظرا لبدأ العام الدراسى عندنا ولكن كنت احب ان اعرف كيفية استخدام هذا الدرس لتمثيل الأشكال و اكمل الفراغ بسحب كلمة في الفراغ وجزاكم الله خيرا .

الاستاذ خليل
09-20-2010, 05:14 AM
هذا تطبيق سريع على الدرس نظرا لبدأ العام الدراسى عندنا ولكن كنت احب ان اعرف كيفية استخدام هذا الدرس لتمثيل الأشكال و اكمل الفراغ بسحب كلمة في الفراغ وجزاكم الله خيرا .

تطبيق حلو استاذ احمد

اعطني فكرتك في تمثيل الأشكال اي ما تريد بالضبط لاحاول صنعها لك

و جاري عمل اكمل الفراغ بسحب الكلمة .

الاستاذ خليل

احمد الشريف
09-20-2010, 02:17 PM
كنت اريد ان اعطى الطالب مثلا قطع مستقيمة مرسومة جاهزة او فرصة ان يرسم بالفأرة مثلا مثلث واحدد له احداثيات رؤوسه ويكون امامه شبكة بيانية مرسومة واطلب منه ان يرسم هذا المثلث على الشبكة البيانية التى امامه وجزاكم الله خيرا يا استاذ خليل

الاستاذ خليل
09-21-2010, 12:11 AM
توجد برامج تعمل ذلك و لكن هي انجليزية و شيء جيد ان نصنعه هنا بس كوده اتوقع بيكون طويل .

لكن ان شاء الله سأقدم بعض الاكواد التي اعرفها لنعمل هذا التطبيق و هذا درس مثل ما طلبت
الدرس 24 : عمل اسئلة اكمل الفراغ و حلها بالسحب و الافلات مع جمع الدرجات (http://www.hesab.net/vb/showthread.php?goto=newpost&t=7362)

الاستاذ خليل

سما الرياضيات
12-02-2010, 11:30 AM
تم التطبيق ،،

وبارك الله فيك يا أخي ،،

الاستاذ خليل
12-02-2010, 09:25 PM
عمل حلو استاذة انشاء الله نرى اعمالك الاخرى

go to sky
12-06-2010, 03:47 PM
عندما قمت بعمل نسخ الكائنات على شكلين والحذف يحدث تداخل ... كيف يمكن عمل
النسخ على شكلين والحذف كل على حده دون حدوث تداخل عند السحب أو الحذف؟؟

الاستاذ خليل
12-06-2010, 08:07 PM
ارسل ملف يبين المطلوب لكي احاول معك استاذ