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

مشاهدة النسخة كاملة : أستفسار عن كود


....صدى....
20 Aug 2008, 11:17 AM
السلام عليكم ورحمة الله وبركاته
أخوتى الكرام
ماهوالكود الذي ينقل لي مثلا مربع من ليرالى اخرمع مايحويه من اشكال تم اضافتها له من كل ليرينتقل اليه

hilalss
20 Aug 2008, 01:03 PM
بإمكانك تغيير العمق ( Depth ) لأي موفي كلب في الفلاش ... عن طريق public swapDepths(target:Object) : Void
تقريبا تعمل لنفس الهدف الذي تريد عمله ... يعني حتى لو كان الموفي كليبس في layers مختلفة ... فراح يعمل عليها ... بعطيك المثال التالي :
بس قبل عمل المثال لازم تعرف ان هذه الخاصية تعمل فقط على الموفي كليبس اللي موجودة تحت نفس الموفي كليب ,,,, بمعنى أن جميع الموفي كليب اللي تحت ال__root كمثال مكن نعمل هالخاصية بينها ,.... ولكن اذا كان عندك موفي كليب في ال__root وآخر موجود داخل موفي كليب مثلا _root.myMv فبالطبع لن يعمل بينها ... أرجو أن تكون هذه النقطة واضحة ... والنبدأ بالمثال :

1) كون 3 layers مختلفة على ال__root.
2) اذهب الى الفريم الأول من layer1 ... وارسم أي شكل واليكن دائرة وحوله إلى موفي كليب وأسمه (circle_mc) .
3) كرر العملي (2) ولكنعلى layer 2 و برسم شكل ثاني مثلا مستطيل وضعه تحت الدائرة ,,, وقم بتسميته هذا الموفي كليب (rect_mc)
4) الذهب الى layer 3 وكون زر فيه وأكتب الكود التالي على الزر :


on(press){
if(circle_mc.getDepth() > rect_mc.getDepth()){
rect_mc.swapDepths(circle_mc.getDepth()+1);
}else{
circle_mc.swapDepths(rect_mc.getDepth()+1);
}

}
5) والآن جرب العرض وقم بالضغط على الزر ... ستجد ان في كل مرة تضغط فيها الزر ... يتغير ترتيب الموفي كليبس بحيث الذي في الخلف يأتي الى الأمام .. وهكذا كلما ضغطت الزر ...:eg:

عذرا للإختصار ... تعرف على الكود .. وإذا واجهت صعوبه في فهمة ... تفضل بالسؤال ...
أرجوا أن يكون هذا الحل الذي تريده .. وهذا حسب فهمي لسؤالك ... ولك التعقيب

تحيات
hilalss

....صدى....
21 Aug 2008, 10:14 AM
المثال اخي الكريم
ادراج ثلاث فريمات وعشر اشكال
في كل فريم ثلاث اشكال
والشكل العاشر في الفريم الاول يتم نقله الى الفريم االذي يليه مع مايضاف له من شكل من الاشكال الثلاثة الموجودة في الفريم
بحيث اني اقوم بسحب شكل من الاشكال الثلاثة الموجودة في الفريم الاول ووضعه على الشكل العاشر
وانتقل به الى الفريم الثاني عن طريق زرواكرر نفس العملية
الكود المطلوب (نقل شكل الى الفريم الذي يليه مع اي شكل يوضع عليه من الاشكال الثلاثة بناء على رغبة اللاعب)

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

hilalss
21 Aug 2008, 01:54 PM
أعتذر لأني لم أفهم طلبك 100% ...
عالعموم يبدوا أنك استوفيتي عملك بالمثال الثاني ... ولكن لا أستطيع الاجابة لأن بها بعض الغموض ... ولعل الأمر بسيط ولا يحتاج لكل هذا .... لذلك ... أقترح عليك شرح ما تريدينه بصورة منفصلة عن ما قمتي به ... دون الدخول في تفاصيل الانتقال من فريم الى فريم وغيرها ... بمعنا مثلا : ( أريد عمل عدة موفي كليبس بحيث أستطيع عند ادراج أحدها فوق الآخر يقوم الفلاش بدمجهما في موفي كليب واحد أقوم بنقله الى مكان آخر ... إلخ ) ....
عذرا لهذا ... ولكن فقط تعودنا على طرق سؤال المواقع الانجليزية بهذه الطريقة مع بيان تفاصيل برنامج الفلاش الذي يستخدم و الأكشن وغيرها... عالعموم لا أريد أن أعقد عليك الأمور ... ولذلك ... أرجوا التوضيح ... لاختيار الحل الأنسب لك من بين عشرات الحلول ...
ولعل احد الأخوة الخبراء ان يفيدك أكثر ...

تحيات
hilalss

....صدى....
21 Aug 2008, 11:59 PM
أخي الكريم جزاك الله خيراعلى شرحك الوافي
وارجو ان تعذرني لانني لم اوفق في طرح السوال

Kingflash
25 Aug 2008, 12:40 PM
أختي أنا أنصحك بأن تعملي الشغل كله في فريم واحد حتى يسهل عليك النقل

أما بخصوص نقل الأشكال من فريم إلى آخر فلا يمكن ذلك بالصورة التي تتخيلينها

أرجو أن تضعي ملف مفتوح حتى نستطيع مساعدتك ....

أنا بستنى الملف
سلام

....صدى....
26 Aug 2008, 12:28 PM
اخىالكريم جزاك الله خيرا
هذا هوالملف المفتوح]
اضغط هنا لتحميل ملف 1.zip
(9.26 كيلوبايت) (http://www.joreyat.org/file/gyzzxg6e549d/)

hilalss
26 Aug 2008, 06:29 PM
السلام عليكم ...
أخت صدى .... الآن اتضحت الصورة ... وعذرا لأنه لم يكن لدينا الخيال الكافي لتصور ما تودين القيام به ...

عالعموم ... حسب فهمي الآن ... ( أن ما تريديه هو: عند ادراج الأشكال التي بالأسفل في الصندوق الذي بالأعلى يتم وضعها بحيث عند الانتقال الى الفريم التالي لرؤية الأشكال الأخرى عن طريق الزر ... يبقى الشكل الذي نقلتيه في الصندوق ... وهكذا حتى تنتهي ....

قمت بإرفاق الملف المرفق الذي عدلته ليقوم بتلك العملية ... (حاولت قدر المستطاع أن لا أغير شيئا في العمل الذي قمتي به) ... وقمت بالتالي:

1) قمت بتحويل الصندوق الأزرق الذي نضع به الأشكال الى movieclip وأسميته scr_mc.
2) ذهبت الى الأشكال وقمت بتسميتها من sh1 الى sh9 .... ورحت عملت لكل واحد linkage وأسميتها بنفس الأسامي يعني منsh1 الى sh9.

3) رحت للفريم الأول وأضفت الكود التالي:

function moveObj(obj){

if(eval(obj._droptarget) == scr_mc){

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

scr_mc["at_"+obj]._x = obj._x - scr_mc._x;
scr_mc["at_"+obj]._y = obj._y - scr_mc._y;

//----
obj._visible = false;

}

}

4) آخر شي رحت أضفت في كل شكل السطر التالي لمناداة الfunction اللي عملناه بالأعلى (أضفته تحت this.stopDrag() :

_root.moveObj(this)

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


تحيات
hilalss

Kingflash
27 Aug 2008, 02:57 AM
شكرا لك أخي هلال كثير 0....

ههههههههه كنت أسرع مني وجاوبت على السؤال ...... يلا خيرها بغيرها

أتمنى من صدى أن يخبرنا بما حصل معه ، حتى لا نكون في ريب من أمرنا ...

شكرا أخي هلال .....(المرة الجاي رايح أسبقك) ....
سلاموووو

....صدى....
27 Aug 2008, 02:57 AM
زادك الله علما
أخى الكريم
كيف اعطل الاشكال الباقية عند اختياراللاعب احد الاشكال
بمعنى ان ا للاعب لايمكن ان يختار الاشكل واحد فقط من الاشكال الموجودة

Kingflash
27 Aug 2008, 03:02 AM
أستنى أخي صدى أنا رايح أجاوبك

بس أصبر علي شوي

ربع ساعة يعني

علشان أزبطلك الموضوع كله

سلام

Kingflash
27 Aug 2008, 04:07 AM
بسم الله الرحمن الرحيم


هذا هو الملف المفتوح اخي بعد التعديل الأخير

تم تعطيل الأشكال الثانية فيه

أي إستفسار نحنا جاهزين

سلاموووووووووو

hilalss
27 Aug 2008, 11:36 AM
شكرا أخي KingFlash >>>> ما شاء الله سريع ...
أتشرف بك أخي ... و نتمنى الفائدة للجميع .....

فقط أحببت أن أضع طريقة أخرى ... أعتقد بأنها ستكون أسهل .... وهي بإضافة الكود التالي فقط الى moveObj function ... وسيقوم بالعمل المطلوب ... وهذا الكود هو ...

//هذي هي الإضافة -------------------
for(i in _root){
if(!i.indexOf("sh")){
_root[i].enabled = false;
}

}
//---------------------------------

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


function moveObj(obj){

if(eval(obj._droptarget) == scr_mc){

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

scr_mc["at_"+obj]._x = obj._x - scr_mc._x;
scr_mc["at_"+obj]._y = obj._y - scr_mc._y;

//----
obj._visible = false;

//هذي هي الإضافة -------------------
for(i in _root){
if(!i.indexOf("sh")){
_root[i].enabled = false;
}

}
//---------------------------------

}
}


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

تحيات
hilalss

Kingflash
27 Aug 2008, 11:38 AM
ههههههههههههههه حل حلو أخي

بس أنا كنت عاوز أسهل الموضوع شوي

سلام

....صدى....
28 Aug 2008, 08:09 AM
اخي الكريم بالنسبة للملف لايفتح وتخرج لى الرسالة التالية
http://www.arb-up.com/files/arb-up-2008-6/E4Q98365.gif

حدثت اخطاء عند العمل
اترككم مع التدرج في العمل كى يتضح الخطاء

ادرج ثلاث فريمات وادرجت في الفريم الاول مربع لوضع الكورعليه
ادراج ثلاث بلانك فريم
ادرج في كل منهما ثلاث كور
حولت كل شكل من الاشكال التسعة الى موفي كليب وكتبت اكشن التحريك لكل منهما
غيرت الاسماء من sh1 الى sh9 في instance name
كتبت اسماؤهم linkage بعد اختيار الخيار Export for actionscript
ادراج في الفريم الاول والثاني زر وكتبت الاكواد للتنقل بين الليرات
الى هنا تمام والنتيجة هي
امكانية السحب
والتنقل بين المشاهد
الكرة المختارة في المشهد الاول لاتنتقل الى المشهد الثاني عند الانتقال اليه

كتبت الاكشن التالي في الفريم الاولfunction moveObj(obj){

if(eval(obj._droptarget) == scr_mc){

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

scr_mc["at_"+obj]._x = obj._x - scr_mc._x;
scr_mc["at_"+obj]._y = obj._y - scr_mc._y;

//----
obj._visible = false;

}

}
لم يحدث تغيير ولم تظهر اخطاء

عند كتابة الاكشن
_root.moveObj(this) للشكل الاول من الاشكال التسعة حدث الخطا التالي
http://www.arb-up.com/files/arb-up-2008-6/nmP99354.png
قمت بكتابة الاكشن لكل من الاشكال التسعة لكن الخطا مازال ولكن تغيرت صيغته
اين الخطا

هذه صورة لصفحة العمل
http://www.arb-up.com/files/arb-up-2008-6/KUN99731.png

....صدى....
28 Aug 2008, 08:12 AM
اخوتى المنتدى ثقيل جدا الصفحات لاتفتح بسرعة
ها تواجهون نفس المشكلة

hilalss
28 Aug 2008, 12:45 PM
ممتاز أخت صدى ... فهمتي العمل ... ولكن أعتقد الخطأ أنك يجب أن تدخلي الكود _root.moveObj(this) داخل {}وليس خارجة ....
لأن بمعنى يكون كا التالي :

on(release){
this.stopDrag();
_root.moveObj(this);
}

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


تحيات
hilalss

Kingflash
28 Aug 2008, 12:55 PM
أخي أنت لازم تنزل الفلاش 8

شوف الموضوع هذا ونزل من الفلاش
ممكن برنامج الفلاش 8 - منتديات سفن التعليمية (http://www.saven7.com/vb/showthread.php?t=37546)

لإنه الملفات على الفلاش 8

الكود الذي يجب كتابته في الزر هو

on (press) {
startDrag(this, true);
}
on (release) {
stopDrag();
_root.moveObj(this);
}

....صدى....
30 Aug 2008, 02:47 AM
جزاكم ا لله خيرا اخوتى الكرام
تم التنفيذ بنجاح وارجو التكرم بشرح الكودالتالى ومتى توضع الاقواس والفواصل وهكذا
الكود

function moveObj(obj){

if(eval(obj._droptarget) == scr_mc){

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

scr_mc["at_"+obj]._x = obj._x - scr_mc._x;
scr_mc["at_"+obj]._y = obj._y - scr_mc._y;

//----
obj._visible = false;

}

}

Kingflash
30 Aug 2008, 04:02 PM
السلام عليكم أخي

سأشرح لك الكود (مع أنه الكود ليس لي بل لصديقي وحبيبي هلال (إحفظ هاللطش يا هلال) ههههههه)

أول شيء نشرح الكود
ثم نأتي لذكر الفواصل

الشرح :-

function moveObj(obj){

if(eval(obj._droptarget) == scr_mc){

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

scr_mc["at_"+obj]._x = obj._x - scr_mc._x;
scr_mc["at_"+obj]._y = obj._y - scr_mc._y;

//----
obj._visible = false;

}

}

أول شيء وفي السطر الأول عرفنا فنكشن (إقتران ) إسمه moveObj
وبعدين حكيناله في القوس إقبل قيمة وضعها في المتغير obj

قد تتساءل من أين تأتي هذه القيمة
إذا نظرت إلى الكود التالي في الزر

_root.moveObj(this);

سوف ترى إسم الفنكش وداخل القوسين هناك قيمة وهي this طبعا هذه ال this معناها إسم الكائن الحالي وهو في حال الزر إما أن يكون sh1 أو sh2 ..... sh9
إذا لو ضغطنا عل الزر sh1 مثلا وكأننا قلنا
_root.moveObj(sh1);
الرجاء أن تكون هذه النقط وضحت (إذا لم توضح أعد القراءة مرة أخر قبل أن تنتقل لشرح الكود كاملا لإن هذه النقطة هي الفيصل في الموضوع)

طيب الآن نأتي لسطر الثاني

if(eval(obj._droptarget) == scr_mc){
// بقية الكود
}

الآن عندنا جملة IF إذا تحقق الشرط وأصبح ناتجه true رايح ينفذ بقية الكود وإذا لا ، مارايح ينفذ شيء

نأتي للشرط
eval(obj._droptarget) == scr_mc

الآن هنا عندنا معادلة من طرفين
الطرف الأول eval(obj._droptarget) والطرف الآخر scr_mc

وبينهما علامة المساواة == هذه العلامة تعني إذا القيمتين متساويتين إذن الناتج ture وطبعا إذا الناتج ture رايح ينفذ الشرط if

طيب الآن نشوف أول قيمة

eval(obj._droptarget) طبعا قلنا أنه obj تحمل القيمة sh1 إذا أصبح الكود
eval(sh1._droptarget)
الآ هذه الدروب تارقيت droptarget تعني أين وقع الكائن (يعني أين أفلت الكائن sh1 ) (يعني عل أي موفي كليب)
إذا إحنا أفلتنا المربع sh1 على الموفي كليب الكبير الذي سنضع فيه الأشكال سيعطي لنا إسم الموفي كليب الكبير ، ألا وهو scr_mc
إذن أصبحت المعادلة

scr_mc == scr_mc
هذه ناتجها true لإنهن يساوي بعضهن

طبعا الآن صار الشرط true إذن سينفذ الكود الباقي
نأتي لشرح الكود الباقي

scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());

الأمر attachMovie هذا يستخدم لإستدعاء الكائنات من المكتبة وصيغته العامة هكذا
TargeMovie.attachMovie("ID name","new Name","Depth")

الآن نأتي لشرح الصيغة
TargeMovie = الموفي كليب الذي سيحوي الموفي المستدعى
attachMovie = هذا هو الأمر
ID name = هذا هو الإسم كما هو مسجل في المكتبة
new Name = هذا إسم الموفي كليب المستدع الجديد
Depth = العمق وهو يتحكم في ترتيب الموفي كليبات مع بعضها (من هو تحت ومن هو فوق ومن هو في المقدمة.... الخ )

نأتي الآ لنطبق الكود كما في المثال جزءا جزءا

الآن نحن بدل TargeMovie وضعنا scr_mc
طبعا هذا هو السر الذي يجعل الموفي كليبات تثبت حتى لو غيرنا الفريم حيث أننا سنضع الموفي كليبات(المربعات) في الموفي كليب الكبير وأشدد عل كلمة (في) يعني داخله ...


((""+obj).split(".")[1]
هذا محل ID name
سنحلل الكود
""+obj هذه لجعل المتغير يصبح نصيا
الأمر spilt يقسم النصوص من عند مكان "."
يلا نطبق
obj = _root.sh1
إذن سيقسم النص إلى قسمين
_root و sh1
أما عن [1] فهذه لإختيار القسم الثاني من المصفوفة الناتجة من قسمة النص حيث
_root = 0
و
sh1 = 1
إذن أصبح الكود كله يخرج لنا sh1 ويضعها في خانة الإسم من المكتبة ID Name

الإسم الجديد هو
"at_"+obj
إذن
at_sh1 هو أصبح الإسم الجديد NewName

العمق إخترنا له أكبر عمق (يعني في المقدمة)

الآن خلصنا من السطر الثالث
السطر الرابع والخامس هن علشان لما يفلت الجسم يتغير الإحداثي للسجم الذي إستديعاه من المكتبة ويصير زي الإحداثي للموفي المسحوب


بعد كل هذا نخفي الموفي كليب المسحوب في السطر السادس علشان ما يبين ويضل الموفي كليب الجديد المستدع من المكتب ظاهر .....


هذا شرح بالتفصيل الممللللللللل

حاب آخذ برأي أخي هلال


الآن موضو الفواصل والأقواس هذا موضوع شائك لإنه كل أمر له وضعيته الخاصة من الأقواس والفواصل

سلامي لك

hilalss
30 Aug 2008, 04:44 PM
ما شاء الله يا أخ KingFlash .... شرح أكثر من رائع ... لا أظن أني سأشرح أفضل من هذا لو قمت أنا بالشرح ... شكرا جزيلا ...


فقط تعقيب بسيط ... وأظنك ذكرته فقط للتبسيط ....ولكن للمحترفين ... فإن القيمة الدخلة الى المتغير obj .... عن طريق ادخال this بين القوسين عند منادات moveObj ... هي ليست من نوع string ... بل هي refrence للobject .... فبالتالي أي عملية نقوم بتنفيذها عليه ... سيتم تنفيذها على الobject الذي يشير اليه ... مثلا obj._x سترجع لنا البعد الأفقي للobject الذي قمنا بتحريكة .... وهكذا ... فقط وددت التنويه ... وقد يفهم أهمية التفريق والتنويه لهذه النقطة المحترفون .. كأخي الحبيب KingFlash

شكرا لك أخي على مجهودك الرائع ... أرحتني من شرحه ... وأبدعت في الشرح ... لعله من حظ الأخت صدى أن قمت أنت بالشرح ....


تحيات
hilalss

Kingflash
30 Aug 2008, 04:55 PM
ههههههههههه شكرا أخي هلال

أنت أصبت بقولك
لإنه أنا لما أشرح براعي أنه يلي بشرحه مبتدأ أو محترف

فلا داعي أن نبين string والrefrence
أما لو أنا أنا وإياك بنحكي مع بعض
بنحكي بالمصطلحات بتفهم علي وبفهم عليك

شكرا جزيلا عل ردك
بالنسبة للأخت صدى ، أتمنى أنها إستفادت ، ولازم تطمنا إيش صار معها ، يعني فهمت ولا لا ...

شكرا لكم جميعا

:6b5a1iuytff80f:دمتم بحفظ الرحمن :6b5a1iuytff80f:

....صدى....
05 Oct 2008, 05:17 PM
اخوتى الكرام جزاكم الله خيرا
فهمت بعض الشئ
لكن عندى مشكلة
قمت بتطبيق العمل مرة اخرى بنفس الترتيب ولكن تحدث مشكلة وهى عند سحب احد الاشكال ووضعها على الموفي كليب الذي في الاعلى لاتتعطل الاشكال الاخرى علما ان كود التعطيل الذى تم وضعه في اللير الاول هو
function moveObj(obj){



if(eval(obj._droptarget) == scr_mc){



scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());



scr_mc["at_"+obj]._x = obj._x - scr_mc._x;

scr_mc["at_"+obj]._y = obj._y - scr_mc._y;





obj._visible = false;





for(i in _root){

if(!i.indexOf("sh")){

_root[i].enabled = false;

}



}




}

}

Kingflash
06 Oct 2008, 10:51 AM
راجع الملفات المرفقة واستبدل الكود يلي كتبته في مشاركتك الأخيره بالكود يلي موجود بالملفات المرفقة الأصلية من الأخ هلال أو مني

سلام

....صدى....
08 Oct 2008, 01:45 PM
اخوتى الكرام هذا هو العمل اتمنى اعرف الخطا اين

http://up.7cc.com/dldbnz60711.zip.html

hilalss
09 Oct 2008, 01:56 PM
السلام عليكم ...

لقد قمتي بتغيير الlinkage للأشكال بدل أن تبدأ ب sh .... تغيرت الى ch ...

وبالتالي عليك فقط تغيير الكود الخاص بتعطيل الأشكال الأخرى وتغيير sh الى ch كاتالي ...



for(i in _root){

if(!i.indexOf("ch")){

_root[i].enabled = false;

}

تحياتي

....صدى....
13 Oct 2008, 10:20 AM
مافهمته من الكود هو
/ان الاشكال هي كائنات بمجرد وضعها على الموفي الكليب الذي في الاعلى( scr_mc)تصبح جزء منه (او بمعنى تتساوى معه )ويتم تنفيذ الشرط
2/ان الكائنات عند تسميتها /ch1 الىch9تندرج تحت مسمى واحد وهوthis
=========
ارجو توضيح هذه النقطة
ماهوالكود الذي اكتبه
في حال وضعت 6/7او اكثر موفي كليب من الاعلى بدل موفي كليب واحد

وضاعفت الكائنات ( الكور ) بحيث اني مثلا اختار كرة واحدة اذاوضعتها على الموفي كليب لايقبل غيرها ولايتغير حجمها بحيثاتنقل بين الليرات وفي كل مرة لي حرية الاختيار من الكور


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

3.zip مركز تحميل طق طق (http://file6.9q9q.net/Download/87992611/3.zip.html)

hilalss
20 Oct 2008, 06:59 AM
عذرا لتأخري في الرد .......

المهم ... عندما قمنا بمساعدتك ... راعينا عدم المساس بمشروعك قدر الامكان ...

على العموم ....... أقترح عليك التالي ...

1) دعي الخطوات السابقة كما هي ..
2) بدل أن تضعي الأشكال في ال _root >> أفضل أن تضعيها داخل موفيكلب ... ولتسمه مثلا myObj_mc
3) يغير كود التعطيل الى التالي ...



for(i in myObj_mc){


myObj_mc[i].enabled = false;

}

ملاحظة: طبعا عليك تغيير كود الزر ... لينتقل بالفريم داخل الموفي كلب myObj_mc وليس الروت ...
بالنسبة لتغير حجم الأشكال ........ عليك بوضع الحجم المناسب للموفيكلب للأشكال عند تصميمها ... ولا تقومي بتمديد أو تصغير الشكل من الخارج .... بل عندما تريدي تغير أي شي به عليك بدخول الموفي كلب والقيام بالتغييرات اللازمة سواء تكبير أو تصغير أو أي أمر تريديه من داخله .........

عذرا على الرد المتأخر والبسيط ... ولك الاستفسار اذا غمض عليك أي أمر ...


تحياتي

....صدى....
20 Oct 2008, 10:21 AM
جزاك الله خير الجزاء أخي الكريم ولى عودة لأستزيد من علمكم

....صدى....
20 Oct 2008, 01:23 PM
أخي الكريم في الحقيقة لم افهم ماتعنيه بقولك
بدل أن تضعي الأشكال في ال _root >> أفضل أن تضعيها داخل موفيكلب ... ولتسمه مثلا myObj_mc
(الشكل السبق كان موفي كليب واسمهscr_mc)
يغير كود التعطيل الى التالي ...

كود:
for(i in myObj_mc){
myObj_mc[i].enabled = false;

}
كود التعطيل السابق هو

on(release){
this.stopDrag();
_root.moveObj(this);
}



بالنسبة لتتغيير كود الزر ... لينتقل بالفريم داخل الموفي كلب myObj_mc وليس الروت
اتمنى التوضيح


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

....صدى....
20 Oct 2008, 01:48 PM
قال رسول الله صلى الله عليه وسلم :
((إن الله وملائكته وأهل السموات والأرض ,
حتى النملة في جحرها
وحتى الحوت في جوف البحر
ليصلون على معلم الناس الخير))الترمذي

hilalss
21 Oct 2008, 09:10 AM
أخي الكريم في الحقيقة لم افهم ماتعنيه بقولك
بدل أن تضعي الأشكال في ال _root >> أفضل أن تضعيها داخل موفيكلب ... ولتسمه مثلا myObj_mc
(الشكل السبق كان موفي كليب واسمهscr_mc)
يغير كود التعطيل الى التالي ...

لا أقصد تغير شيء في scr_mc ,,,, ولكن ما أقصده هو تكوين موفي كلب جديد وتسمه myObj_mc .... بحيث تضعي داخلة جميع الأشكال التي تودي ان يتم نقلها من داخل myObj_mc إلى scr_mc ..... يعني نفس الlayer اللي حطيتي الأشكال بها ... تحطيه بنفس التركيبة داخل myObj_mc. ( قمنا بهذه الخطوة لجعل كود التعطيل أكثر فاعلية ...... بحيث في الكود السابق كنا قد عملنا جملة شرطية لتجنب تعطيل جميع الكائنات التي بالروت ... لأنه من دون الجملة الشرطية ... سيتم تعطيل جميع ما بالعرض بما فيها زر الانتقال وغيره ... وبالتالي عندما نضع جميع الأشكال داخل موفيكلب ... يجعلنا نعطلها دون الحاجة الى جمل شرطية تقيدنا عند قيامنا بأي تغيير في المسمى ... كاللذي حدث عند تغيير sh الى ch >>> وبهذه الطريقة بإمكانك تسمية الأشكال بأي اسم توديه .... مع مراعاة ان يكون الاسم الذي تضعيه على الشكل هو نفس الاسم الذي وضعتيه في ال linkage له ... ... أتمنى الصورة واضحة الآن .... ولك حرية الاستفسار ...


يغير كود التعطيل الى التالي ...

كود:
for(i in myObj_mc){
myObj_mc[i].enabled = false;

}
كود التعطيل السابق هو

on(release){
this.stopDrag();
_root.moveObj(this);
}

كود التعطيل الذي أقصدة ليس هذا !!! ... وانما الكود الذي أضفناه داخل ( moveObj ) ,,, أتمنى ان تتضح الصورة ...
أما الكود الذي بالأشكال فيبقى كما هو ولا حاجة لتغيره ...

* الكود الذي يجب ان يتغير أيضا هو ... الكود الذي في زر الانتقال ... بدل أن يكون به _root.play() يغير الى _root.myObj.play() >>>>>>>>>>>>>> آسف ليس لدي الفلاش حاليا لأعرض عليك بالتفصيل ... ولكن هذا ما أذكره ..

* وهذه اضافة عن ما عرضته سابقا ....... قومي بتغيير السطر التالي دالخل الفنكشن moveObj :


scr_mc.attachMovie((""+obj).split(".")[1],"at_"+obj,scr_mc.getNextHighestDepth());


إلى التالي:


scr_mc.attachMovie((""+obj).split(".")[2],"at_"+obj,scr_mc.getNextHighestDepth());



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

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


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


تحيات
hilalss

....صدى....
02 Nov 2008, 12:42 AM
جزاك الله خيرا اخي الكريم ممكن التوضيح
وهذا الملف