azizsoft
26-03-2014, 01:40 AM
http://www.abc4web.net/upload/images2/7ttwvwqjnkozmy1.png
http://www.abc4web.net/upload/images2/wcofafsmm21ires.png
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
من المعلوم أن هناك عديد الطرق لتصميم العاب بسيطة للاطفال بواسطة السحي والافلات وأعني طبعا سحب عناصر معينة
بالماوس في اتجاه ما يطابقها في الجهة المقابلة ويتم اعتماد مثل هاته المشاريع للموارد التعليمية للاطفال مثلا ويمكن أيضا انجاز
أسئلة صعبة ـأو تمارين تكون نتيجتها بالتوصيل .
في هذا الموضوع أقدم لكم طريقة ادراج مشروع بأكواد سهلة ويمكن تطبيقها على أي تصميم شرط تعديل طفيف في اسماء الموفي كليب في المصفوفة
يعني انت اذا صممت مثلا موفي1 موفي 2 موفي 3 موفي 4 الخ ... تعدلها مثلا الى mc1 mc2 mc3 mc4 ... etc في المصفوفة
شريطة أن تصمم طبعا في المقابل عدد مماثل للموفي كليب وتعطيها اسماء target-_mc1 target-_mc2 target-_mc3 target-_mc4
افتح معي برنامج الفلاش ونتابع
في الطبقة الاولى ارسم الموفي الكيب والتي ستكون الأهداف الثابتة يعني لاتخضع الى السحب واعط اسم كل موفي مثلا
target-_mc1 target-_mc2 target-_mc3 target-_mc4
الان اضف طبقة ثانية تكون فوق الاولى واضف الموفي كليب التي ستخضع الى السحب الى الأهداف المذكورة مثلا
mc1 mc2 mc3 mc4
نضيف طبقة ثالثة نخصصها مثلا للنصوص والتايمر الخ .. وفي هاته الطبقة اضف حقل نصي اجعله Dynamic واضغط على ايكونة Embed ثم ok لارفاق الخط
اكتب داخله مثلا عنوان مسابقتك ومن خانة Instance Name اعطه اسم resultTxt
الان نضيف طبقة رابعة للاكشن سكريبت نحددها وننسخ الكود التالي وغير فقط في اسماء الموفي كليب في المصفوفة
بالاسماء التي تخص الموفي كليب التي ادرجتها التي ستخضع الى السحب من قبل المستخدم
import flash.display.MovieClip;
var startX:Number;
var startY:Number;
var startLineX:Number;
var startLineY:Number;
var FirstObject:Array = new Array (b1,c1,b2,c2);
for (var i:int = 0; i< FirstObject.length; i++)
{
var FO:MovieClip = FirstObject[i];
FO.buttonMode = true;
FO.mouseChildren = false;
FO.addEventListener(MouseEvent.MOUSE_DOWN, dragThis);
FO.addEventListener(MouseEvent.MOUSE_UP, dropThis);
}
function dragThis(e:MouseEvent):void
{
var currentObject:MovieClip = MovieClip(e.target)
currentObject.startDrag(true);
startX = currentObject.x;
startY = currentObject.y;
}
function dropThis(e:MouseEvent):void
{
var currentObject:MovieClip = MovieClip(e.target)
currentObject.stopDrag();
var myTargetName:String = "target_" + e.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (e.target.dropTarget != null && e.target.dropTarget.parent == myTarget)
{
resultTxt.text = "أحسنت";
e.target.removeEventListener(MouseEvent.MOUSE_DOWN , dragThis);
e.target.buttonMode = false;
e.target.x = myTarget.x;
e.target.y = myTarget.y;
startLineX = myTarget.x;
startLineY = myTarget.y;
}
else
{
resultTxt.text = "حاول مرة ثانية";
e.target.x = startX;
e.target.y = startY;
}
}
تطبيق على الشرح
http://im63.gulfup.com/1340ky.swf
الملف المفتوح في المرفقات
لاتنسونا من صالح الدعـــــــــــــــاء
بالتوفيق للجميع
http://www.abc4web.net/upload/images2/wcofafsmm21ires.png
http://www.abc4web.net/upload/images2/wcofafsmm21ires.png
الحمدلله والصلاة والسلام على رسول الله وعلى آله وصحبه أجمعين
السلام عليكم ورحمة الله وبركاته
من المعلوم أن هناك عديد الطرق لتصميم العاب بسيطة للاطفال بواسطة السحي والافلات وأعني طبعا سحب عناصر معينة
بالماوس في اتجاه ما يطابقها في الجهة المقابلة ويتم اعتماد مثل هاته المشاريع للموارد التعليمية للاطفال مثلا ويمكن أيضا انجاز
أسئلة صعبة ـأو تمارين تكون نتيجتها بالتوصيل .
في هذا الموضوع أقدم لكم طريقة ادراج مشروع بأكواد سهلة ويمكن تطبيقها على أي تصميم شرط تعديل طفيف في اسماء الموفي كليب في المصفوفة
يعني انت اذا صممت مثلا موفي1 موفي 2 موفي 3 موفي 4 الخ ... تعدلها مثلا الى mc1 mc2 mc3 mc4 ... etc في المصفوفة
شريطة أن تصمم طبعا في المقابل عدد مماثل للموفي كليب وتعطيها اسماء target-_mc1 target-_mc2 target-_mc3 target-_mc4
افتح معي برنامج الفلاش ونتابع
في الطبقة الاولى ارسم الموفي الكيب والتي ستكون الأهداف الثابتة يعني لاتخضع الى السحب واعط اسم كل موفي مثلا
target-_mc1 target-_mc2 target-_mc3 target-_mc4
الان اضف طبقة ثانية تكون فوق الاولى واضف الموفي كليب التي ستخضع الى السحب الى الأهداف المذكورة مثلا
mc1 mc2 mc3 mc4
نضيف طبقة ثالثة نخصصها مثلا للنصوص والتايمر الخ .. وفي هاته الطبقة اضف حقل نصي اجعله Dynamic واضغط على ايكونة Embed ثم ok لارفاق الخط
اكتب داخله مثلا عنوان مسابقتك ومن خانة Instance Name اعطه اسم resultTxt
الان نضيف طبقة رابعة للاكشن سكريبت نحددها وننسخ الكود التالي وغير فقط في اسماء الموفي كليب في المصفوفة
بالاسماء التي تخص الموفي كليب التي ادرجتها التي ستخضع الى السحب من قبل المستخدم
import flash.display.MovieClip;
var startX:Number;
var startY:Number;
var startLineX:Number;
var startLineY:Number;
var FirstObject:Array = new Array (b1,c1,b2,c2);
for (var i:int = 0; i< FirstObject.length; i++)
{
var FO:MovieClip = FirstObject[i];
FO.buttonMode = true;
FO.mouseChildren = false;
FO.addEventListener(MouseEvent.MOUSE_DOWN, dragThis);
FO.addEventListener(MouseEvent.MOUSE_UP, dropThis);
}
function dragThis(e:MouseEvent):void
{
var currentObject:MovieClip = MovieClip(e.target)
currentObject.startDrag(true);
startX = currentObject.x;
startY = currentObject.y;
}
function dropThis(e:MouseEvent):void
{
var currentObject:MovieClip = MovieClip(e.target)
currentObject.stopDrag();
var myTargetName:String = "target_" + e.target.name;
var myTarget:DisplayObject = getChildByName(myTargetName);
if (e.target.dropTarget != null && e.target.dropTarget.parent == myTarget)
{
resultTxt.text = "أحسنت";
e.target.removeEventListener(MouseEvent.MOUSE_DOWN , dragThis);
e.target.buttonMode = false;
e.target.x = myTarget.x;
e.target.y = myTarget.y;
startLineX = myTarget.x;
startLineY = myTarget.y;
}
else
{
resultTxt.text = "حاول مرة ثانية";
e.target.x = startX;
e.target.y = startY;
}
}
تطبيق على الشرح
http://im63.gulfup.com/1340ky.swf
الملف المفتوح في المرفقات
لاتنسونا من صالح الدعـــــــــــــــاء
بالتوفيق للجميع
http://www.abc4web.net/upload/images2/wcofafsmm21ires.png