مشاهدة النسخة كاملة : سؤال حول السحب والإفلات
عبدالمنعم
09-03-2010, 04:14 PM
كيف أستطيع أن أسحب شيء ويبقى في مكانه حتى أستطيع سحبه لعدة مرات
مثال للسؤال في المرفقات :
الاستاذ خليل
09-05-2010, 03:58 PM
ما هو الشكل الذي تود ان تسحبه عدة مرات ؟
هل الكتابة ام الصور ؟ حدد اكثر
الاستاذ خليل
09-05-2010, 05:49 PM
السلام عليكم
عدلت على الملف كالتالي:
هنا نحتاج الى درس المتغيرات فهو مهم جدا راجع الدروس السابقة .
اضفت اليه كود يحسب الدرجات ارجو ان يكون مفهوما
و طريقته نعرف فقط متغير في حدث اللود lode باسم و يكون كالتالي
sum=0
اي اجعل قيمة المجموع = 0
و نضيف نص داينمك و نكتب اسمه sum في المتغير اي في var و ليس في اسم الكائن
و فقط ماكان الذي نريد ان نضيف درجة نزيد 1 على القيمة كالتالي:
_root.sum+=1;
قمت بتعريف متغيرات من بداية تشغيل العرض هي التالي :
تضغط على السين 1 و تذهب للسكربت و تلصق هذا الكود
onSelfEvent (load) {
xt1=t1._x;
yt1=t1._y;
xt2=t2._x;
yt2=t2._y;
sum=0;
}
هذا الكود يعمل من بداية ضهور الصفحة اي من بداية تشغيل العمل يتنفذ فيه هذه الاوامر
السطر الاول عرفنا متغير اسمه xt1 و به يحفظ قيمة موضع النص t1 في البعد السيني
السطر الثاني عرفنا متغير اسمه yt1 و به يحفظ قيمة موضع النص t1 في البعد الصادي
السطر الاول عرفنا متغير اسمه xt2 و به يحفظ قيمة موضع النص t2 في البعد السيني
السطر الثاني عرفنا متغير اسمه yt2 و به يحفظ قيمة موضع النص t2 في البعد الصادي
السطر الخامس عرفنا متغير اسمه sum لحساب الدرجات و اعطايناه القيمة 0 من بداية تشغيل العرض
الان قم بدراج نص داينمك و اجعل المتغير var اسمه sum لكي تكتب نتيجة الطالب هناك
قم بصنع اجابة صحيحة و سمها t و تعمل من الفريم الثاني اي تأثير حيث الفريم الاول به توقف
و صنع اجابة خاطئة و سمها f و تعمل من الفريم الثاني اي تأثير حيث الفريم الاول به توقف
اجعل اسم النص الاول طبيعي الاضائة اسمه t1 و لا بد ان يكون تارجت target
اجعل اسم النص الثاني صناعئ الاضائة اسمه t2 و لا بد ان يكون تارجت target
سم صورتين طبيعية الاضاءة باسم s1 , s3 و لا بد جعلهما target
سم صورتين صناعية الاضاءة باسم s2 , s4 و لا بد جعلهما target
قم بالضغط النص ذاتي الاضاءة و الصق به هذا الكود
على السكربت و الصق هذا الكود .
onSelfEvent (press) {
startDrag(_target, false);
}
onSelfEvent (release) {
stopDrag();
if (_droptarget==_root.s1._target) {
_root.s1._visible=false;
_root.sum+=1;
_root.t.gotoAndPlay(2);
}else if (_droptarget==_root.s3._target) {
_root.s3._visible=false;
_root.sum+=1;
_root.t.gotoAndPlay(2);
}else{
_root.f.gotoAndPlay(2);
}
_root.t1._x=_root.xt1;
_root.t1._y=_root.yt1;
}
قم بالضغط على نص صناعي الاضاءة t2 و الصق به هذا السكربت
onSelfEvent (press) {
startDrag(_target, false);
}
onSelfEvent (release) {
stopDrag();
if (_droptarget==_root.s2._target) {
_root.s2._visible=false;
_root.sum+=1;
_root.t.gotoAndPlay(2);
}else if (_droptarget==_root.s4._target) {
_root.s4._visible=false;
_root.sum+=1;
_root.t.gotoAndPlay(2);
}else{
_root.f.gotoAndPlay(2);
}
_root.t2._x=_root.xt2;
_root.t2._y=_root.yt2;
}
اقصد بهذا الكود عندما يضغط المستخدم على النص يتم السماح للنص بالتحرك مع الماوس و هو اول ثلاثة اسطر
و عندما يفلت المستخدم النص يحصل ما يلي
اول سطر onSelfEvent (release) {
يعني عندما يفلت المستخدم الماوس
stopDrag();
يتم الغاء السحب عن الكائن اي يبقى مكانه
if (_droptarget==_root.s2._target) {
اذا قمنا بافلات الماوس و كنا ساحيبن النص t2 على الهدف s2 يحصل التالي
_root.s2._visible=false;
يتم اخفاء الصورة s2
_root.sum+=1; يتم زيادة 1 على الاجابات الصحيحة
_root.t.gotoAndPlay(2);
يتم تشغيل موفي الاجابة الصحيحة من الفريم الثاني
}else if (_droptarget==_root.s4._target) {
و الا يتنفذ شرط جديد يكون النص t2 ممسوكا الماوس فإذا افلت على الهدف s4 يتنفذ ما يلي
و هي نفس السابق
root.s4._visible=false;
_root.sum+=1;
_root.t.gotoAndPlay(2); يخفي الكائن s4
و يجمع 1 على الاجابات الصحيحة
و يتم تشغيل الاجابة الصحيحة من الفريم الثاني
و الكود
}else{
اذا لم تتنفذ الشروط السابقة يحصل ما يلي
_root.f.gotoAndPlay(2);
يتم تشغيل الاجابة الخاطئة من الفريم الثاني .
} انتهى الشرط
_root.t2._x=_root.xt2; يقوم بارجاع النص t2 لمكانة الاصلي المحفوظ لكي يتم سحبه مرة اخرى في البعد السيني
_root.t2._y=_root.yt2;
و يتم ارجاع الكائن t2 لمكانة الاصلي حسب الموضع الصادي حسب القيمة المحفوظة في ذاكرة الكمبيوتر و التي تم ادراجها في حدث lode
لا حظ انني عمل الشرط فقط لصورتين بها اضاءة طبيعية و 2 اضائتها صناعية فبجب عليك استكمال الشرط
يعني تضيف شرط جديد بعد تسمية الصور الباقية s9 s5 s6 s7 s8 و جعلها جميعها target يكون الشرط اعلى else
حاول في هذا الامر علشان تعرف تعدل الاكواد
و اليك الملف ايضا لتقوم بالتعديل عليه و عليك ارجاعه كاملا
الاستاذ خليل
عبدالمنعم
09-05-2010, 07:44 PM
الله يعطيك العافية ويجعله في ميزان حسناتك
أشكرك على الجهد الجبار ، سوف أتدرب عليه .
:0041:
الاستاذ خليل
09-05-2010, 08:03 PM
و لا تنسى تطبيقك كي يستفيد الاعضاء و تتدرب انت
vBulletin® v3.8.11, Copyright ©2000-2024, TranZ by Almuhajir