SAHAR1367 عضو ممتاز وضعيت: آفلاين 10 آذر ماه ، 1387 تعداد ارسالها: 113 امتياز: 693 تشکر کرده: 20 تشکر شده 21 بار در 18 پست
ارسال شده در: پنجشنبه، 11 تير ماه ، 1388 13:41:58 موضوع مطلب: اكشن اسكريپت های فلش
سه، دو، يك، اكشن! وب ديگر تنها مرور وبسايت نيست، اين حقيقتي كتمان ناشدني است. با رشد فناوريهاي نرمافزاري و توسعه شيوههاي تعامل، ديگر بههيچعنوان نميشود اينترنت و وب را مجموعهاي از صفحهها و اطلاعات متني در نظر گرفت. امروزه صفحههاي ثابت و پاياي متني قديم، به محيطهايي پر هياهو براي تبادل اطلاعات بدل شدهاند. بسياري از وبسايتها بستر نرمافزارهايي هستند، كه تا همين سهچهار سال پيش، تنها از طريق ديويديهاي سنگين نصب ميشد. دنياي چندرسانهاي اينترنت تحول يافته است و در اين ميان، وبسايتهايي كه محيط پذيراتري دارند، موفقتر بودهاند. تكنولوژي فلش، در اين ميان، جاي پاي خود را محكم كرده است، ديگر دموهاي فلش از شكلهاي ساده انيميشنهاي سبك خارج شده و تبديل به اموري پيچيده، با قابليتهاي بالا و منحصربهفرد گشتهاند. بازيهاي آنلاين، انيميشنها، ويدئوها و نرمافزارهاي كاربردي زيادي از دل همين تكنولوژي فلش بيرون آمدهاند. موتور اصلي تمام اين ويژگيها، زبان كدنويسياي است كه ادوبي (و قبلتر، ماكرومديا) آن را پيادهسازي كردهاند: اكشناسكريپت.
اكشناسكريپت زباني اسكريپتي است كه براي توليد و توسعه وبسايتهاي وابسته به فناوري فلش ايجاد شده است. اكشن اسكريپت حتي در روبوتيك و نرمافزارهاي ديتابيسي هم كاربرد دارد. در آغاز، اكشناسكريپتها براي كنترل انيميشن بردارهاي دوبعدي در فلش ايجاد شدند، اما در نسخههاي بعدي (كه در حال حاضر نسخه 3 آخرين نسخه آن است) قابليتهاي بيشتري براي ايجاد بازيهاي تحت وب، نرمافزارهاي غني اينترنتي و ايجاد صوت و تصوير نيز بهدست آورد.
تاريخچه
نخستين نگارش اكشناسكريپت در سال 2000 ايجاد شد. اكشناسكريپت تحت تاثير جاوااسكريپت ايجاد شد كه در آن، متغيرهاي محلي و انواع دادهاي را با كلمه var ايجاد ميكردند. همچنين قابليت تعريف توابع و پاس دادن پارامترها به آن و دريافت نتيجه بازگشت نيز بود. همچنين ميشد بهجاي انتخاب اكشنها از منوها، آنها را داخل محيطي متني نوشت.
با عرضه FlashMX، ساختار اكشناسكريپت تغيير نكرد و تنها پشتيباني از عبارت switch به اين مجموعه اضافه شد. يكي از ويژگيهاي شاخص اين نسخه از اكشناسكريپت، ارثبري مبتني بر Prototype بود. بدين ترتيب متغير ميتوانست هر نوعي از داده را در خود قرار بدهد. اين امكان، باعث ميشود توسعه كد سريعتر انجام بگيرد و در پروژههاي سطح كوچك مفيد باشد.
اكشناسكريپت نگارش دوم، واقعا تحول عميقي بود و سپتامبر 2003، همزمان با عرضه FlashMX 2004 عرضه شد. از ويژگيهاي اين نسخه ميتوان به قابليت بررسي نوع متغيرها هنگام كامپايل و گرامر مبتني بر كلاسها اشاره كرد. كلمههاي كليدي class و extends بهزبان اضافه شد. در اكشناسكريپت2، برنامهنويسها ميتوانند بهمتغيرها نوع نسبت بدهند و در اين صورت، اگر اشتباهي رخ داد و نوع دادهاي مطابقت نكرد، با خطاي كامپايلر روبهرو شوند. اين نسخه، با چهارمين پيشنويس استاندارد اسكريپتهاي ECMA1 مطابقت داشت.
از سال 2006 تا امروز، سومين نگارش اكشناسكريپت عرضه شده است و همزمان با آن، Flex نگارش 2 و فلش پلير 9 آمد. اكشناسكريپت 3 از نظر ساختاري باز هم تحولي عمده بود و انقدر ويژگيهايي متفاوتي داشت كه بهكل از يك ماشين مجازي ديگر استفاده ميكند. فلشپلير9 دو ماشين مجازي در خود دارد، AVM1 براي كدهايي كه به اكشناسكريپتهاي 1 و 2 نوشته شدهاند، و AVM2 براي كدهايي كه در اكشناسكريپت3 نوشته شدهاند. از ويژگيهاي بسيار شاخص اكشن اسكريپت3 ميتوان به پشتيباني محدود از شتابدهندههاي گرافيكي (OpenGL و DirectX) اشاره كرد.
اكشناسكريپت همچنين در فلكس و AIR2 بهعنوان زبان اسكريپتنويسي استفاده ميشود. البته استفاده از اكشناسكريپت 3 به اين معناست كه امكان بهكارگيري كدهايي كه در آن نوشته ميشود، در تمام بسترهاي فلش نيست، هرچند كه بخش عمدهاي از آن، با نسخههاي قبلي سازگار است.
اكشناسكريپت 3، با ارائه قابليتهاي برنامهنويسي شيگرا، توجه زيادي را بهخود جلب كرد. هر چند، بايد خيالتان را راحت كرد كه استفاده از اكشناسكريپت 3 بهاين معنا نيست كه شما حتما بايد يك برنامهنويس پيشرفته در زمينه شيگرا باشيد. هنوز هم ميشود بهسبك ساختيافته قديم كد نوشت. از نسخه CS3 بهبعد، حتي كدنويسي در خطزماني (Timeline) هم ميسر شده است. همه اينها باعث ميشود انتقال كدها از زبانهاي شيگرا به فلش سادهتر باشد و با سرعت بيشتري انجام شود.
ساختمان دادهها در اكشناسكريپت3
اكشناسكريپت شامل چندين نوع داده پايه، يا ساده است كه براي ايجاد ديگر انواع داده بهكار ميروند. اين انواع داده بسيار شبيه به انواع داده جاوااسكريپت است. از آنجايي كه اكشناسكريپت3 كاملا از ابتدا ايجاد شده است، از اين رو انواع دادهاي اين نگارش با نگارش 2 بسيار متفاوت است. در نگار 2، انواع پايه به اين صورت است:
String: دنبالهاي از كاراكترها
Number: هر مقدار عددي
Boolean: مقداري دودويي كه ميتواند true (درست) يا false (غلط) باشد.
Object: نوعي از داده است كه تمام دادههاي ديگر را در خود جاي ميدهد.
انواع پيچيدهتري در اكشناسكريپت2 قابل تعريف هستند. از ميان آنها ميتوان به MovieClip، TextField و Button اشاره كرد كه با كمك آنها ميشد ميان كاربر و نرمافزار ارتباط برقرار كرد. اما در اكشناسكريپت3 مقادير جديدي اضافه شدهاند:
int: عدد صحيح 32 بيتي.
Null: مقدار تهي.
uint: عدد صحيح بدون علامت 32 بيتي.
و از انواع داده پيچيده اين نسخه، ميتوان بهانواع جالب زير اشاره كرد:
Vector: نوعي از آرايه كه فقط براي فلشپلير 10 بهبعد قابل استفاده است و سرعت بيشتري دارد.
Dictionary: نوعي از آرايه هستند كه كليدهايشان ميتوانند از هر نوعي باشند.
Video: شي خاصي كه امكان ارسال ويدئو به صورت مستقيم يا با پروتكل RTSP را دارا است.
FLEX، عضو جديد خانواده
همانطور كه اشاره كرديم، Flex بستر توسعه كد ادوبي است كه از اكشناسكريپتها استفاده ميكند. اين بستر، براي اين بهوجود آمده است كه با يك چيز مبارزه كند: سختي توليد نرمافزار تحت وب. برنامهنويسان سنتي خوب ميدانند كه بهكار گرفتن عناصر انيميشن در برنامهها چقدر دشوار است. فلكس اين سختي را تا حد امكان سخت ميكند، ولي درعوض نرمافزار شما به ادوبي فلش وابسته ميشود و اين هزينهاي است كه بايد براي رسيدن به نرمافزاري زيبا و با امكانات ظاهري فوقالعاده پرداخت. ظاهر نرمافزار شما بهزبان MXML ايجاد خواهد شد. اين زبان كه مبتني بر XML است، با كمك كدهاي اكشناسكريپت توليد ميشود و ظاهر برنامهتان را ميسازد.
مدل فلكس، يك مدل مولتيتاير است. بدين ترتيب، برنامههايي كه با فلكس ساخته ميشوند در لايه ظاهر خواهند بود. يكي از ويژگيهاي خوب فلكس اين است كه ميتوانند ظاهر را از طريق سرور بهروز كنند، بدون آنكه در سمت مشتري، نياز به بارگزاري مجدد باشد. خب اين ميشود مزيتي نسبت به تركيب جاوااسكريپت و HTML كه با كمك فناوري ايجكس اين كار را انجام ميدهند.
وقتي صحبت به توسعه نرمافزاري در محيط مجازي ميكشد، اكشناسكريپتها حرفهاي زيادي براي گفتن دارند. بسياري از فلشكارها، نقطه قوت كار خود را در استفاده مفيد و بهينه از اكشناسكريپتها ميدانند. براي شروع كار با فلشاسكريپتها، نگاهي به مراجع همين مطلب بياندازيد. پينوشت
1. ECMA, European Computer Manufacturers Association
2. AIR, Adobe Integrated Runtime
مراجع