تکنولوژی فلش، در این میان، جای پای خود را محکم کرده است، دیگر دموهای فلش از شکلهای ساده انیمیشنهای سبک خارج شده و تبدیل به اموری پیچیده، با قابلیتهای بالا و منحصربهفرد گشتهاند. بازیهای آنلاین، انیمیشنها، ویدئوها و نرمافزارهای کاربردی زیادی از دل همین تکنولوژی فلش بیرون آمدهاند. موتور اصلی تمام این ویژگیها، زبان کدنویسیای است که ادوبی (و قبلتر، ماکرومدیا) آن را پیادهسازی کردهاند: اکشناسکریپت.
اکشناسکریپت زبانی اسکریپتی است که برای تولید و توسعه وبسایتهای وابسته به فناوری فلش ایجاد شده است. اکشن اسکریپت حتی در روبوتیک و نرمافزارهای دیتابیسی هم کاربرد دارد. در آغاز، اکشناسکریپتها برای کنترل انیمیشن بردارهای دوبعدی در فلش ایجاد شدند، اما در نسخههای بعدی (که در حال حاضر نسخه 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
مراجع
http://www.adobe.com/products/flex/
http://www.chrome-fusion.com/blog/code/
علیرضا طیاری