الإنتقال من AS2.0 إلى AS3.0

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

للأسف هناك سوء فهم كبير لدى الكثيرين من مبرمجي  AS2  يجعل الكثير منهم يواجه صعوبة في تعلم AS3  والكثيرين منهم يقلع عن فكرة تعلم  AS3   نتيجة اليأس ويقنعون أنفسهم بأن  AS2  يكفيهم ولا يحتاجون لتعلم اللغة الجديدة .. دعونا نوضح أهم أسباب سوء الفهم هذا

1 – AS3 ليست تحديث لــ AS2

– الكثيرون للأسف يعتقدون أن  AS3 هي تحديث لـ AS2 .. وهذا غير صحيح .. AS3 لغة جديدة لم تبنى على AS2 وليس لها علاقة بها .. لا تجعل الإسم يخدعك ! .. التحديث هو أن تستخدم النسخة القديمة وتبدأ بالإضافة والحذف منها لعمل نسخة جديدة .. لكن هذا لم يحدث هنا .. بل تم تجاهل AS2 تماما وتم التفكير والبدأ من جديد في بناء AS3 من الصفر.

2 – AS3 يبدو معقد أكثر من AS2

هذا غير صحيح ..  لو كان هناك شخص لا يعرف أيا من اللغتين فإن تعلمه لـ AS3 سيكون أسهل من تعلمه لــ AS2 ! .. لأنها لغة أكثر تنظيماً .. لكن مشكلة من يعرفون AS2 سابقا أنهم يريدون كتابة AS3 بتفكير AS2  وكأن كل التغيير الذي حدث هو مجرد إختلاف في بعض المسميات ! .. لهذا يُفاجأون بأخطاء كثيرة من الكومبيلر ويستنتجون من هذا أن AS3 لغة معقدة .

يجب أن تلاحظ أن الأكشن سكربت هي اللغة التي تتيح لك التحكم في بيئة الفلاش .. ولأن هيكلة بيئة الفلاش نفسها من حيث الـ display list و الـ Events تغيرت .. فإن اللغة نفسها أصبحت تعبر عن هذا التغيير .. فأرجوك كف عن الإعتقاد أنها نفس اللغة لنفس البيئة فقط مع إختلاف المسميات لأن هذا غير صحيح !

3 – AS3 تضطرني لكتابة كود أكثر من AS2

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

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

4 – سأنتظر حتى صدور AS4 وأتعلمها بدلا من تعلم AS3 الحالية

– لا يوجد شيء إسمه AS4 ولن يوجد خلال سنوات كثيرة قادمة على الأقل .. وحتى عندما يصدر سيكون هو نفسه AS3 مع إضافة بعض الـ classes . لن يوجد أي تحديثات أو أي تغيير في هيكلة البرنامج  أو طرق كتابة اللغة .. أي أنه سيكون مجرد تحديث بسيط لــ AS3 ..  AS3 هو النسخة النهائية من اللغة .. مثل الجافا والــ c++   هل سمعت عن نسخ جديدة من هذه اللغات منذ 10 سنوات ؟! .. لا ولن يكون !

إذن هذه هي أهم أسباب سوء الفهم لدى مستخدمي AS2 .. وهنا يجب طرح سؤال مهم ..

لماذا AS3 أقوى وأفضل من AS2 ؟

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

هذا هو الحال مع  AS3 .. دعونا نرى أهم الفروق التي تميز AS3 عن AS2

  • إعادة هيكلة الـ Displaylist القديمة بهيكلة أقوى بمراحل .. هذا يعني تطبيقات وألعاب أقوى وأكثر ثباتا .. بل وأسهل في التحكم فيها أيضا .
  • إعادة هيكلة نظام الأحداث Event Model  بحيث يصبح أقوى وأسرع .. وبالتأكيد هذا أيضا يؤدي تطبيقات قوية وثابته وأسرع في الإستجابة.
  • هيكلة اللغة بحيث تدعم البرمجة غرضية التوجه  OOP  بشكل أكبر بكثير من AS2 مما يساعد على عمل تطبيقات ضخمة جداً بدون مشاكل .
  • إستدعاء الكود أصبح أسرع كثيرا بسبب الهيكلة الجديدة للغة والأحداث .. تصل إلى 10 مرات أسرع بدون أي مبالغة .
  • التعامل مع الــ xml  – وهي مهارة أساسية يجب أن يعرفها أي مبرمج فلاش – أصبح أكثر سهولة وطبعاً أسرع كثيرا .. يمكنك عمل parsing لملف xml به 3000 نود في أجزاء من الثانية !
  • تدعيم الــ Hardware acceleration مما يعطيك الإمكانية من الإستفادة من كارت الشاشة وبالتالي بناء ألعاب وتطبيقات تعتمد على الجرافيكس كثيراً بشكل أكثر ثباتا وذي أداء أفضل كثيراً من الإعتماد على البروسيسور العادي وحده في عمل كل شيء .
  • التعامل مع الصوت بشكل أفضل حيث يمكنك الأن ليس تحميل الصوت والتحكم فيه فقط .. بل إنشاءه من العدم !
  • تم عمل تطويرات كبيرة في طريقة تمثيل النصوص وهي التي ساعدت كثيراً على قدرة الفلاش في تدعيم اللغة العربية وغيرها في النسخة القادمة  إن شاء الله.
  • قواعد صارمة أكثر في تعريف المتغيرات وغيرها من مكونات اللغة مما يساعد على خروج تطبيق أكثر ثباتا .

..

من الواضح جداً إذن أن AS3 أفضل بكثير من AS2 .. والسؤال هنا .. إلى متى ستظل تبرمج بــ AS2 وتؤجل تعلمك لـ AS3 ؟!

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

1 – بعض الأشياء البسيطة التي يُستخدم فيها فلاش الأن  – مثل الهيدرز وبعض البانرات التي تبدل الصور-  قد يحل محلها إستخدام الــ jQuery مستقبلا .. لذا ستجد نفسك وقتها بدون عمل !

2 – إن كنت أنت لا تنوي التطور فتذكر أن الإنترنت نفسها تتطور وطلبات العملاء مرتبطة بما يشاهدونه في مواقع أخرى .. فإن كنت متأكد أنهم سيظلون على طلباتهم البسيطة التي يطلبونها منذ أربع سنوات مضت .. حسناً .. فلتبقك مكانك محلك سر !

أما إن كنت تنوي تعلم AS3 فلديك بعض النصائح

نصائح لمن ينوي الإنتقال من AS2 إلى AS3

  • إن كانت إنجليزيتك جيدة فأنا أنصحك بكتاب Learning Actionscript 3 : Beginner Guide كتاب رائع ويستخدم إسلوب سهل وبسيط وصفحاته كلها ملونة :)
  • تابع معنا المرحلة الثانية من دورة الأكشن سكريبت 3 التي نطرحها هنا على صفحات المدرسة  .
  • إن كنت تملك خبرة جيدة بــ AS2 وقرأت ما يكفيك في AS3 .. فربما حان الوقت لتقوم بعمل مشروع كبير باللغة الجديدة لتُصقل مهاراتك وما تعلمته .
  • لا تنزعج من وقوعك في بعض الأخطاء بسبب تعودك على اللغة القديمة .. هذا طبيعي في البداية .. لا تجعله يزعجك .. إبتسم وأكمل المسيرة !

  1. mohamed gaber
    19 مارس 2010 - 7:51 ص

    مقالة رائعة ومشوقة للتحديث

    اسلوبك شوقنى لتعلم البرمجة بشكل عام

    وكبداية انا مكمل معاك فى الاكشن سكربت لحد ما نعمل مشاريع كبيرة مع بعض

    ونفسى المدرسة تكبر وتكون الدروس فى باقى المجالات بالقوة دى

    وتبقى منافس ل lynda :)

    اشمعنا هما عندهم شرح جامد كده :)

  2. doby
    19 مارس 2010 - 7:54 ص

    والله مقال روعه جدا وتفكير منطقى لابعد الحدود
    انا عن نفسى بدأت افكر فى تعلم الفلاش وماكنتش اعرف ان فيه لغه برمجه اساسا
    ولما بدأت افهم لاقيت ان دلوقتى فى 2 لغه او اصدارين بمعنى ادق
    لاقيت مصادر كتيييييييييير جدا جدا ل اكشن اسكربت 2 وفنفس الوقت 3 قليل اوى مصادرها
    وده سببلى احباط كبير اوى وفكرت كتير اوى
    ادخل فى اكشن 2 وماليش دعوه ب 3 ولا اعمل ايه
    بس قولت طالما كده كده هتعلم يبقى اتعلم 3 واواكب التطور لانى اكيد هيكون احسن ليا ويفتحلى طرق كتيره اوى لان اكيد اللى بيتطور هو المطلوب
    واللى بيفضل مكانه مع الوقت بيتلاشى لحد مايتنسى
    شكرا استاذى على المقال بجد طمنى اوى انى ماشى فى طريق صحيح
    بالتوفيق ….:)

  3. doby
    19 مارس 2010 - 8:00 ص

    اسف استاذى كان عندى سؤال كده فى بالى
    بالنسبه للغه الاكشن اسكرب هل هى بتتغير كل مده زمنيه معينه
    ولا بتتغير حسب الاصدارات للبرنامج ولا مالهاش مده زمنيه معينه
    احسن دى تبقى مشكله نتعلم 3 وبعدين تنزل 4 تبقى وقعه بيضه :D

  4. SWiSHZOOM
    19 مارس 2010 - 8:55 ص

    شكرا استاذ علي

    انا في مستوى متقدم جدا في AS2 الحمدلله وبصراحه واجهت مشاكل كثيرة في تعلم AS3 وكلها مشاكل في الاساسيات مثلا root والتحكم بعنصر داخل موفي كليب أو التحكم بالموفي كليب من داخل class والعكس لأني في as2 كانت بسيطه بالنسبة لي لأني كنت متعود عليها

    عموما لو نزلت درس توضح فيه هذه الامور root وغيرها والكلام اللي قلته فوق :)

    أو تعطيني رابط فيه نفس الشرح لو تكرمت حتى لو كان بلغة اجنبيه

    شكرا

  5. أحمد يحيى
    19 مارس 2010 - 9:42 ص

    جزاكم الله خيرا يا بشمهندس
    صحيح لغة الاكشن سكريبت 3 لغة متطورة و من الجيل التالت في مستوي الجافا و السي شارب (وهذا من موقع ادوبي نفسه)

    سؤال بسيط حول لغة xml هل هي سهلة التعلم وفي كم يستلزم تعلمها لاني غير متحفز لتعلمها الان وخاصة اني لازلت اتعلم الاكشن سكريبت اما لو كانت سهلة جدا وبسيطة فممكن اني اتعلمها ؟

    وبالنسبة لمن قرأ كتاب Learning Actionscript 3 : Beginner Guide هل يتوجه للتصميم مباشرة ؟ أم يجعل عنده مرجع عن الاكشن سكريبت 3 أكبر يقرأه مثل
    Wiley ActionScript 3 Bible
    OReilly Essential ActionScript 3
    وأيهما تفضل من المرجعين السابقين كمصدر دائم الرجوع اليه؟؟

  6. مصطفى بادوي
    19 مارس 2010 - 11:29 ص

    مشكور يا قطر الندى
    خالص التحيات لك من المغرب

  7. Hamada Alsaggaf
    19 مارس 2010 - 2:00 م

    الله يعطيك الف عافية
    حضرة الناظر “علي”

    بصراحة شجعتني اني اكمل معاكم وادخل عالم AS3

    الله يعطيك اكثر مما تتمنى دائماً

  8. علي محمد علي
    19 مارس 2010 - 3:12 م

    :: Doby ::

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

    :: swishzoom ::

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

    http://www.mandalatv.net/fcny/

    سيساعدك كثيرا لو كانت إنجليزيتك جيدة .. كنت أنوي ترجمته لاحقا

  9. علي محمد علي
    19 مارس 2010 - 3:15 م

    :: أحمد يحيى ::

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

    وجود مرجع بالتأكيد أفضل من عدم وجوده .. شخصيا أفضل ملفات المساعدة الخاصة بأدوبي أكثر من أي شيء أخر .. لكن لو كنت تريد الإختيار بين هذين الكتابين .. فربما كتب Oreillly دائما أفضل

  10. علي محمد علي
    19 مارس 2010 - 3:16 م

    شكرا لكل من قام بالتعليق على كلماتكم الجميلة

  11. marwa
    19 مارس 2010 - 5:06 م

    هل الاكشن سكريبت 3 اكواده التى تطبق فى الفلاش مثل اكواده التى تطبق فى السويتش

  12. عمر
    19 مارس 2010 - 5:12 م

    شكرا لك يا بطل

    الله يوفقك ويفتح لك طريقك :)

  13. gdo
    19 مارس 2010 - 5:26 م

    شكرا ليك يا استاذ على على المعلومات الرائعة والمفيدة دية

  14. SWiSHZOOM
    19 مارس 2010 - 6:25 م

    marwa

    لا السويش 3 لم يصل الى مستوى كامل في as2 حتى

  15. محمد حسان
    19 مارس 2010 - 7:30 م

    بصراحة من ساعة ظهور AS3 والتغيير الجذرى الذى حدث فيه ….. كنت أتمنى من أدوبى أن تغيير إسم اكشن سكربت من الاساس وتسميه اسم جديد يليق به ، لأن للأسف فيه ناس أول ما تسمع كلمة سكربت فى اى حاجة بتفكرها حاجة هايفة وعبيطة للأسف !!
    اللغة الان تستحق اسم جديد يليق بها .

  16. Aboud Murad
    20 مارس 2010 - 10:54 م

    عفية عليك … كلام جميل ومفيد … جزاك الله خير

  17. ابراهيم محمود سالم
    21 مارس 2010 - 10:06 م

    شكرا جزيلا يا على وربنا يزيدك علم وفهم

  18. themigrant
    22 مارس 2010 - 2:46 م

    شكرا يا ستاذ علي مقال مفيد
    انا فعلا كنت متردد كثيرا بالدخول في AS3 حيث انا اشتغل منذ سنوات على ال AS2
    واقول لنفسي اذا بدأت بال AS3 وصرفت فيها وقت بعد فتره ستظهر AS4 ومش حنخلص
    بس مقالك طمني بصراحه وقررت فعلا ان اكون جديا ب AS3
    تحياتي يا بطل

  19. Emile
    23 مارس 2010 - 7:04 م

    السلام عليكم ورحمة الله

    بارك الله فيك اخي العزيز على التوضيح بين as2 و as3

  20. محمد
    31 مارس 2010 - 4:07 ص

    حقيقة الإنتقال نت AS2 الى AS3 شيء ليس بالهين لكن هده ضريبة تعلم
    لغات البرمجة و التطور المهول الدي يعرفه هدا المجال ادن لا مناص من تعلم
    ََAS3 لإرتقاء نحو مستوى أفضل

  21. zaid
    20 أبريل 2010 - 3:16 ص

    اخي الكريم وفقك الله بكل خطواتك ومزيد من التقدم والنجاح:
    ان لست مبرمج ولكن برنامج فلاش حببني بالبرمجه وتعلمت اكشن اسكربت في النسخ القديمة من البرنامج ولكن للاسف انقطعت ثم رجعت وجدت ان فلاش قد تغير تماما وانا احوال الانتعلم الكشن اسكربت3 ولكني واجهتني بعض المشاكل والتي من ابرزها ان ستوب”stop”لا تعمل معي كما كنت في السابق.اي عند محاولة ايقاف فريم او موفي كلب لا يستجيب البرنامج, ارجو المساعده ولك خالص الشكر والتقدير.

  22. أمير مصطفى المنفلوطى
    7 يوليو 2010 - 6:37 ص

    السلام عليكم ورحمة الله وبركاته
    أشكرك يا أخى ليس لأنك تقدم علماً نافعاً فقط.. بل وباللغة العربية، وبأسلوب شرح ميسر وسهل خال من محاولات زرع عقدة بالمتعلم التى أعتبرها متعمدة من الشارح لجر المتعلم لدفع مال أو على الأقل كى يثبت الشارح لنفسه أنه الأفضل!.
    أنا مصمم فلاش وكذلك After Effects, Photoshop, Premier
    ومستعد أن أشاركك وزملائك هذا الجهد فيما أعرف.
    لك جزيل الشكر.

  23. wahwah
    23 يوليو 2010 - 10:16 ص

    baraka allahou fik a5 assalamou 3alaikom macha allah

  24. ASD
    1 أغسطس 2010 - 10:54 ص

    أمثالك أخي علي يستحقون منا الدعوات الصادقة في ظهر الغيب

    أنت تقدم معلومات قيمة جدًا بأسلوب لم أره إلا عند القليل

    أما عن أسلوب الشرح فأنا أقول لك أنت معلم بالفطرة

    الله يحفظك، استمر ونحن معك

  25. wael
    4 أغسطس 2010 - 1:44 م

    جزاك الله خيرا يا بشمهندس ابدعت بصراحة

  26. إبراهيم فرج المتولي
    6 سبتمبر 2010 - 5:44 ص

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

  27. omar
    4 أكتوبر 2010 - 8:04 م

    جزاك الله على هدا الكلام جميل ومفيد

  28. سيد رجب
    23 مايو 2011 - 4:49 م

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

  29. yoyo
    4 أغسطس 2011 - 2:18 م

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

  30. محمد دسوقى
    26 يناير 2012 - 10:12 ص

    السلام عليكم ورحمة الله وبركاتة
    استاذ على عندي سؤال ضرورى لو سمحت :
    فية طريقة لكتابة الكود في ملف اكشن اسكربت منفصل ، وتقريبا معظم الكتب الاجنبية بتشرح بالنظام دا .

    عاوز اعرف اية ميزة النظام دا مع ان الكود بيكون اطول كتير ؟ وهل ابدأ بتعلم النظام دا ولا ادور على تعليم اكشن بالاسلوب العادي(كتابة الكود داخل ملف الفلاش) ؟ مع العلم انى مبتدأ ومتوسط في الانجليزي

  31. abdullah agha
    29 مارس 2012 - 6:34 م

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

    ولن أنسى أن أشكرك على روحك المرحة التي جعلت هذا العلم الجاف يشبه تناول الحلويات .. بلهجتي السورية أقول لك :(ممتع ولا يمل ).

    بارك الله بك وزادك علماً.

    أخوك عبد الله آغا

  32. عبدو هيرو
    22 مايو 2012 - 1:46 م

    مشكور أستذنا على الموضوع الرائع والله يعني انا في حيرة من أمري انا اطلعت على الفروق بين اللغتين ووجدت انو AS2 أسهل من AS3 وانا كنت بدرس مند مدة عن AS2 لكي اطبق عليها في السويتش ولكن الفلاش ظهر لي أفضل بكثير لكن لا يمكننا اهمال قدرات السويتش لذا أخي بماذا تنصحني هل تكفيني AS2 لأكون مبرمج على الاقل متوسط المستوى مع اني اطمح اني احترف هذا المجال [البرمجة ولغاتها تجدبني مثل المغناطيس]والله انا في حيرة من امري لو ممكن تنضحني بالافضل والاسهل.

    • علي محمد علي
      23 مايو 2012 - 11:01 ص

      أنصحك بتعلم AS3 طالما تنوي الإستمرار في هذا المجال .. لا تجعل الحاجز النفسي عائق .. الأمر سيكون صعب في البداية لكن مع المحاولة ستجد الأمر سهلاً .. أنت تقتل نفسك بالبقاء على As2 .