کتاب آموزش ActionScript 3.0

 

ActionScript 3.0

8 MB | 198 pages | PDF

آموزش اکشن اسکریپت 3 از سطح صفر

گردآوری : سید محمد جواد نیکوکار

 

دانلود کنید

 


فلکس چیست؟

 

فلکس چیست؟ خب ، فلکس ابزاری است برای تولید برنامه های کاربردی تحت فلش ، با فلکس می توان فایلهای SWF تولید کرد که Flash player وظیفه رندر آن رو به عهده داره .

اساس و فلسفه وجودی فلکس به خاطر تولید آسان و سریع برنامه های اینترنتی غنی یا همان RIA می باشد یعنی برنامه هایی که با این تکنیک درست می شوند این خاصیت رو دارند، که بدون نیاز به Ping کردن سرور یا به عبارت دیگه بدون نیاز به بار گذاری مجدد صفحه ای که آن را مشاهده میکنیم ، اطلاعات برای کاربر تغییر کند. یعنی تمام المانهای گرافیکی که در برنامه ثابت هستند تغییر نمیکنند و فقط اطلاعات بنابر رفتار کاربر تغییر میکنند. برای رسیدن به این هدف یکسری کامپوننت در اختیار توسعه دهنده قرار گرفته مثل Button , list box , data grid و با استفاده از این کامپوننت ها برنامه نویس بیشتر وقت خود را روی تنظیمات این کامپوننتها و مورد های دیگری صرف میکند و برای توسعه گرافیکی برنامه می تواند به Flash Professional اتکا ورزد.

در حال حاضربرای برنامه نویسی تحت فلش دو ابزار داریم یکی فلش و دیگری فلکس می باشد. فلکس به شکل یک برنامه J2EE و کتابخانه بر چسب یا همان تگ JSP که با یک زبان مبتنی برچسب به نام استMXML و یک زبان شیئ گرا به نام AcionScript3 را پشتیبانی می کند و این زبان رو مستقیما در داخل برنامه های کاربردی فلش کامپایل میکند و برنامه های کاربردی SWF باینری را به وجود می آورد.

از MXML نام برده شد، خب یک زبان نشانه گذاری رابط کاربر مبتنی بر XML است ، بسیار شبیه به تگ های MXML .Html اولین بار توسط شرکت ماکرو مدیا در سال ۲۰۰۴ معرفی شد از امکانات این زبان می توان تولید رابط های کاربری که همان کامپوننت ها می باشند نام برد و همین طور برای ایجاد رفتارها در برنامه ها از این زبان استفاده کرد. خب ، بریم سراغ تفاوت این ابزار با محیط توسعه فلش.

تفاوت بین Flash professional و Flex: در فلش مفهومی به نام تایم لاین داریم که در آن به اشیاء می توان حرکت داد بر اساس زمان. ولی در فلکس تایم لاینی وجود ندارد در عوض آن زبان MXML برای کد نویسی در اختیار برنامه نویسان قرار دارد در حالی که Flash Professional فاقد این زبان می باشد. به دلیل نبود تایم لاین در فلکس امکان استفاده از اشیاء به صورتی که در فلش دیده میشه وجود ندارد مثلا استفاده مووی کلیپ در تایم لاین و حرکت دادن به آن! ولی در عوض اگر برنامه نویس خوبی هستید می توانید از کدنویسی برای امکان  ایجاد شی ها در محط قلش پلیر استفاده کنید مثل مووی کلیپ ها و دیگر انواع شیئ ها. تفاوتهای دیگری هم این دو ابزار دارند که از ذکرشان می پرهیزم و موکول می کنم به آینده. در آینده به صورت عملی کار با محیط فلکس را با هم تجربه خواهیم کرد.

خب حالا که اختلاف محیطهای توسعه را می دانیم! به راحتی قابل حدس است که ابزار Flash Professional برای گرافیست ها بهینه شده و فلکس برای برنامه نویس ها!

ابزار برای توسعه:

شرکت ادوبی SDK این محصول را در سال ۲۰۰۸ ، تحت لیسانس Mozilla Public License منبع باز کرد. با این کیت نرم افزاری براحتی میتوانند برنامه نویس ها برنامه های خود را  توسعه دهند. برای راحتی و سرعت بیشتر توسعه برنامه ها می توان از Flex builder که اخیرا در نسخه جدید تغییر نام داده به Flash builder (در حال حاضر در نسخه آزمایشی به سر می برد) استفاده کرد.این IDE به صورت پلاگینی برای Eclipse توسعه داده شده است.

فلکس با چندین تکنولوژی دیگر رقابت دارد ، این تکنولوژیها هم برای توسعه برنامه های اینترنتی غنی می باشند:

WPF تحت Silverlight وJavaFX,Openlaszlo,Xul,Ajax,Curl

روند توسعه برنامه ها:

۱٫طراحی و پیکر بندی: در این قسمت می توانید محیط رابط کاربری را پیاده سازی کنید برای این کار در خود فلکس بیلدر کامپوننت ها آماده برای پیاده سازی هستند و یا حتی می توانید کامپوننت را سفارشی و یا نوع جدیدی از این کامپوننت را بسازید ، از دیگر محصولات شرکت ادوبی هم میتوان برای ساخت رابط کاربر کمک گرفت محصولاتی مثل Flash professional, Illustrator, Flash catalyst, Fireworks و بعد به هر یک از المانهای گرافیکی می توان با کد نویسی جان تازه ای داد. و بعضا ارتباط بین چند کامپوننت برقرار کرد و… قابل ذکر است که از CSS هم برای رابط گرافیکی و سفارشی سازی می توان کمک گرفت.

۲٫کامپایل: مکانیسم کامپایل برنامه ها در فلش همانند کامپایل در (برای اطلاع از روند کامپایل به فلش پلیر به این مقاله می توانید مراجعه کنید) Flash Professional است و تنها تفاوت نحوه کامپایل در فلکس و Flash professional تبدیل تگ های MXML به اکشن اسکریپت در زمان کامپایل می باشد.

فلکس را می توانید به این شکل در نظر بگیرید: در یک مدل چند لایه ای: مانند لایه Server application , لایه منبع اطلاعاتی , لایه خدمات گیرنده , برنامه های فلکس در لایه Presentation قرار دارد یعنی در لایه نمایش درست می شود و بدون احتیاج به سرور خاصی در کامپیوتر کاربر به راحتی قابل اجرا می باشد.

MXMML and Actionscript to SWF

MXMML and Actionscript to SWF

دو کامپایلربرایFlex داریم: mxmlc مخفف MXML Compiler  یا  compc مخفف Component Compiler  این کامپایلرها می توانند هم در محیط Flex builder و هم در خط فرمان اجرا شوند (در صورتی که از SDK استفاده می نمایید)

خب!هر جند که بسیار خلاصه بود امیدوارم مفید واقع شده باشه در آینده بررسی بیشتری در مورد ابزارهای دیگر و حتی Framework یا کار با داده ها و تعاملات با سرور در این تکنولوژی خواهم نوشت.

 

 


Adobe Flash Platform

 

Adobe Flash Platform بستری است برای ایجاد برنامه های قوی ، برنامه های مدیریت محتوا وبرنامه های ویدیویی در همه سیستم عامل ها و دستگاه های مختلف از رایانه های شخصی گرفته تا موبایل و تلوزیون . Adobe Flash Platform بستری است آماده استفاده برای بیش از ۹۸ درصد از کاربران رایانه های رومیزی .

Flash Platform شامل تکنولوژی های مختلفی است و بخش های مختلفی را در بر میگیرد این بخش ها شامل : client runtimes, tools,  frameworks, servicesو  servers می شوند،  که  فراهم کننده همه نیاز های شما در زمینه ارائه برنامه های قدرتمند اینترنتی(Rich Internet Application (RIA) ) و پوشش دادن طیف وسیعی از مخاطبان خواهد بود .

در ادامه مقاله با بخش های مختلف Flash Platform شامل سرفصل های زیر آشنا میشویم :

  • Runtimes
  • Tools
  • Frameworks
  • Servers
  • Services
  • Ecosystem

 

Runtimes

در مرکز تمام بخش های Flash Platform ، Runtimes قرار دارد . این بخش ، بخشی است که کاربران با آن سروکار دارند و شامل دو نرم افزار می شود . فلش پلیر برای اجرا، روی مرورگرها و ایر(َAir) برای اجرای روی دسکتاپ . runtimes بستری  برای اجرای برنامه های پلتفرم فلش است .

  • Adobe Flash Player

بیش از ۹۸ درصد از کاربران بر روی سیستم های خود Adobe Flash Player را نصب کرده اند و تقریبا ۸۰ درصد از آن ها ظرف مدت ۹ ماه نسخه های جدید را بروز رسانی می کنند . در اکثر مواقع فرآیند ارتقا در فلش پلیر بدون باز شدن صفحه جدیدی در مرورگر و توسط نسخه های قبلی فلش پلیر به صورت بلادرنگ به اجرا در می آید . بیش از ۸۵ درصد از محبوب ترین سایت ها غالبا در بخشی از سایت خود و یا در تمامی آن از فلش استفاده کرده اند و تجربه ای غنی را برای کاربران خود به ارمغان می آورند . فلش پلیر بسیار غنی شده است و بهبود رابط بصری کاربر ، امکان برنامه نویسی شی گرا ، برنامه نویس مبتنی بر فریم ها و پخش موزیک و ویدیو امروزه در دسترس کاربران و برنامه نویسان است .

فلش پلیر علاوه بر فراهم آوردن امکانات غنی تر برای توسعه دهندگان و برنامه نویسان ، ثبات و پایداری را نیز برای کاربران خود به ارمغان آورده است . برای کسانی که دوست ندارند از جاوا اسکریپت و html برای توسعه سایت های کاربردی قوی استفاده کنند ، فلش پلیر برای تمامی مرورگرها و تمامی سیستم عامل ها در دسترس است. هر چند شما امروزه می توانید برنامه های تعاملی را با فلش و جاوااسکریپت ایجاد کنید و این امکان به صورت بالعکس هم موجود است .

فلش پلیر از پخش همزمان (Stream) و بلادرنگ ویدیو و موزیک پشتیبانی میکند . اکنون بیش از ۸۰ درصد محتوای ویدیویی قرارگرفته برروی وب با فلش پلیر سازگار است و بیش از ۹۷ درصد مردم از فلش پلیر برای دسترسی به ویدیو استفاده می کنند .

  • Adobe Air

فلش پلیر یک بستر برای اجرای برنامه های های کاربردی تحت مرورگر وب شماست . شما همچنین می توانید برنامه های کاربردی تحت وب هم در آژاکس و هم در فلش را بر روی دستکتاپ خود به وسیله Adobe Air اجرا کنید .Air به شما اجازه می دهد برنامه هایی بنویسید که بخشی از کد آن بر روی وب وبخشی از کد بر روی دسکتاپ قرار دارد . Air در زمینه نرم افزار های تلفیقی دسکتاپ و وب بسیار قدرتمند عمل می کند . برای کسانی که به دنبال این هستند که برنامه های وب را بر روی دستکتاپ اجرا کنند Air می تواند در وقت و هزینه آن ها صرفه جویی بسیار زیادی کند .

Adobe Air یک سیستم Runtime برای دسکتاپ است که فلش پلیر ، SQL Lite و موتور WebKit را داراست . از آنجایی که برنامه های مبتنی بر Air مستقل از  برنامه های تحت وب هستند می توانند اختیاراتی در اختیار برنامه نویس قرار دهند که در وب وجود ندارد ، مانند کار با File System ( خواندن ، نوشتن ، ساخت و حذف پوشه ها) . Air این قابلیت را دارد که اتصال به شبکه را تشخیص دهد . Air می تواند با انواع پایگا های داده محلی ارتباط بر قرار کند و همچنین تبادل داده را بین یک پایگاه داده محلی و پایگاه داده بر روی سرور انجام دهد . Adobe Air از ویندوز ، سیستم فایل ، منو ها و مواردی از این دست هم پشتیبانی کامل به عمل می آورد

Tools

در این بخش نرم افزار های تولید محتوا برای Runtime های معرفی شده Flash Player و Adobe Air قرار می گیرند . Adobe Flash Professional نرم افزاری است که برای ترسیمات گرافیکی ، کار با timeline و همچنین انیمیشن استفاده می شود .Flash Catalyst نرم افزاری است برای ایجاد محتوای فلش با کمترین میزان نیاز به کد نویسی و Flash Builder برای تولید محتوای فلش مبتنی بر کد استفاده می شود.

قدیمی ترین عضو این خانواده است در سال ۱۹۹۴ ایجاد شده و نزدیک به یک دهه ، تنها نرم افزار، برای تولید محتوای فلش است .بیشتر برای ساخت انمیشن ، مالتی مدیا و کار با ویدیو استفاده می شود .

در طول این ده سال طراحان دریافتند که فلش تنها یک نرم افزار برای تولید محتوای مالتی مدیا نیست . بلکه میتوان از فلش برای خلق یک نرم افزار و سایت اینترنتی غنی نیز بهره برد . در کنار کاربردهایی که ذکر شد Action Script برای کنترل برنامه ها و واسطه های کاربری به وجود آمد. اکشن اسکریپت زبان اصلی فلش مبتنی بر ECMA Script است .

  • Adobe Flash Builder

با ظهور برنامه های فلش بر روی وب ، طراحان بیشتر و بیشتر برای خلق برنامه های قوی و قدرتمند  ، تحت وب علاقمند شدند . محیط توسعه فلش یک محیط بصری است به هر حال کم کم نیاز به یک محیط کد نویسی اصلی و ابزار های بصری جانبی برای برنامه نویسان سنتی آشکار شد . بدین شکل Flash Builder در سال ۲۰۰۴ شکل گرفت .

Flash Builder (قبلا با نام Flex Builder منتشر می شد) یک پلاگین است بر روی نرم افزار متن باز Eclipse ، که امروزه مورد کاربرد سطح وسیعی از برنامه نویسان است. فلش بیلدر یک ویرایشگر کد است که قابلیت اشکال زدایی و کامپایل را دارد و همچنین دارای ابزار هایی برای ایجاد واسط گرافیکی کاربر به صورت بسیار شکیل است . شما برای کار با این برنامه به دو زبان Action Script و MXML احتیاج دارید. MXML یک زبان مبتنی بر XML ( زبان برچسب گزاری تگ ها) است که تحت فریم ورک Flex به شما اجازه می دهد هر گونه رابط گرافیکی کاربر را خیلی سریع بسازید . وقتی شما نرم افزار خود را کامپایل ( ترجمه) میکنید MXML تبدیل به کد های Action Script شده و بعد تمامی کد های Action Script تبدیل به فایلSWF  می شوند . به طور معمول MXML برای لایه بندی محیط گرافیکی برنامه و اکشن اسکریپت برای برنامه نویسی منطق و محاسبه استفاده می شود .

  • Adobe Flash Catalyst

فلش کاتالیست ابزار جدیدی است برای ساخت محیط های مالتی مدیا و تعاملی مبتنی بر فلش ،  بدون زدن کد . شما می توانید رابط گرافیکی خود را به صورت ایستا در Adobe Photoshop ، Adobe Illustrator و یا Adobe Fireworks طراحی کرده و سپس به درون فلش کاتالیست import کنید . بعد از وارد کردن رابط گرافیکی ، شما میتوانید تعاملات ، رویدادها ، حرکت ، منوها و سایر موارد از این دست را بسازید . رویداد ها مطابق با timeline است .

Flash catalyst می تواند به راحتی با سایر برنامه ها تعامل کند و پس از ساخت اولیه برنامه ادامه مراحل تولید برنامه را در نرم افزار هایی مانند Flash Builder دنبال کنید یا اینکه مستقیما و به صورت SWF و یا برنامه مبتنی بر Air استفاده نمایید.

Flash Catalyst در سریع کردن و آسان تر نمودن روند ساخت سایت ها و برنامه های فلش نقش بسیار مهمی دارد . برنامه نویس سریع محیط گرافیکی کاربر (User Interface ) را طراحی میکند ودر صورت نیازبه تغییرات در سطح حرفه ای ادامه کار خود را بر روی Flash Builder انجام می دهد . Flash Catalyst برای ساخت انواع برنامه ها مانند پروژه های مالتی مدیا ، وب سایت های شخصی ، راهنمای محصولات ، برنامه های ارائه محتوا به کاربر و … مستقل از سایر برنامه ها نیاز طراحان وب و برنامه نویسان را مرتفع ساخته و از اتلاف وقت به صورت چشمگیری می کاهد.

Frameworks

علاوه بر نرم افزار های معرفی شده ، Adobe چارچوبی برای برنامه نویسان فراهم آورده ، سرشار از توابع غنی و کامل .

Flex Frameworks یک Frameworks رایگان و متن باز است. این  Frameworks شامل زبان MXML ، بسته های کلاس به زبان Action Script و خط فرمان برای کامپایل و اشکال زدایی از برنامه هاست . اگر چه Flex Frameworks می تواند به تنهایی به کار برده شود ولی اکثر برنامه نویسان برای سرعت و سهولت بیشتر آن را با IDE نرم افزار Flash Builder به کار می برند . از آنجا که این Frameworks مبتنی بر متن باز است هر برنامه نویسی می تواند با توجه به نیاز های خود پروژه را تغییر دهد . با سیستم سورس کد باز و آزاد ، برنامه نویسان می توانند به رشد Flex Frameworks کمک کنند .

بسته های اکشن اسکریپت موجود در فلکس مانند بلوک ها و کپسول های کوچک است . این بسته کلاس ها شامل اجزای ورودی برای داده ها ( مانند : ورودی متن ، دکمه های رادیویی ، چک باکس ، انتخاب تاریخ و…) ، برای نمایش داده ( Grid , Tree , View) و مالتی مدیا ( مانند : تصاویر ، ویدیو پلیر) است . همچنین دارای کلاس های لایه بندی مانند : عمودی ، افقی ، مرزها ، فرم ها و … است . این کلاس برای کمک به برنامه نویس برای ساخت برنامه های شناور و با لایه بندی آزاد است تا شما بتوانید هر گونه که خواستید در مقابل تغییر اندازه پنجره واکنش نشان دهید .

از دیگر کامپوننت های Flex Framwork می توان به کامپوننت هایی برای تایید اعتبار، فرمت بندی داده ها ، کار با اشیا ، کار با صفحه نمایش ، ناوبری ، کار با مرورگر و بسیاری موارد دیگر اشاره کرد .

یک راه بهتر برای آشنایی بیشتر با کامپوننت های فلکس ، مراجه به وب سایت tour de flex است . در این وب سایت بیش از ۲۰۰ نمونه مثال از فلکس شامل سورس کدها ، مستندات ، فایل های اجرایی و سایر مسائل موجود است . این مثال ها در موضوعات مختلف در دسترس است .

Server

فلش پلتفرم شامل چند برنامه برای” دریافت/ارسال” مطالب و اطلاعات از سرور به سمت برنامه فلش  شماست . برای ارسال فیلم و مدیا از سرور بر روی فلش نرم افزار Flash Media Server امکان کار با محتوای متحرک را به صورت بلادرنگ فراهم می کند . برای انتقال اطلاعات و یکپارچه سازی اطلاعات با سیستم های تجاری و فرآیند های کسب و کار ColdFusion ،برای استفاده از سرور J2EE به همراه BlazeDs و برای خدمات داده ای Live Cycle وجود دارد .

شما میتوانید به وسیله ابزارهای گفته شده محتوای فلش به صورت داینامیک و پویا بسازید که قادر به جمع آوری ، بازیابی ، نمایش و ارسال اطلاعات به سرور است .

فلش نحوه ارتباط با سرور را با ابزارهایی که گفته شد به شکل بسیار مطلوبی فراهم کرده است . برای مقایسه سرعت لود برنامه های طرف سرور فلش با Ajax به Data loading benchmark application بروید .

Runtime بسترهای لازم برای کار با اطلاعات را در سمت کلاینت فراهم می کند و برنامه های سمت سرور از کلاینت حمایت کرده و محتوای داینامیک متناسب با نیاز برنامه نویس و کاربر را تولید می کنند. برنامه هایی مثل Live Cycle ، ColdFusion و Blaze DS . اکثر این برنامه های بر روی بستر های Open Source سوار هستند و توسعه آنها به سرعت انجام میشود . همچنین نسخه های تجاری از این نرم افزار ها برای کارکرد های حرفه ای تر در دسترس است .

  • Adobe Flash Media Server

خانواده Adobe Flash Media Server بستری برای اجرای ویدویوهای همزمان (Real-time ) و ارتباطات مالتی مدیای زنده برای برنامه شما فراهم می آورند . خانواده Adobe Flash Media Serve  بستری پیشرو برای انکدینگ FLV ، حفاظت از ویدیوهای همزمان (Streaming) ، ویدیو های کیفیت بالا و حجم بالا ، برنامه هایی که نیاز به ویدیو دارند مثل webcam ، چت ، بازی های Online ، VOIP و موارد دیگر است .

  • Adobe Live Cycle Data Service

ادوبی” لایو سایکل” بستری  برای قابلیت remoting  فلش فراهم می آورد تا برنامه های فلش پلتفرم بتواند با داده ها و پیغام های همزمان (Real-Time Data And Message ) کار کنند . لایو سایکل برای نوشتن برنامه های مسنجر و تعاملی با کاربر و سرور کمک می کند. لایو سایکل مشکلات کار با سرور و داده ها ، مثل خطایابی را تسهیل می کند . لایو سایکل برای شما فایل های PDF به صورت بی درنگ و همراه با نمودار ها و متغییر های تصویری را نیز ایجاد می کند .

بخش سرور همچنین توسط برنامه هایی از خانواده ادوبی پشتیبانی میشوند که عضو اصلی فلش پلتفرم نیستند ، اما به روند توسعه برنامه های فلش پلتفرم کمک فراوانی می کنند . از جمله این برنامه ها ColdFusion و BlazeDS است . برای اطلاعات بیشتر در مورد کلد فیوژن به مطلبی که قبلا نوشته ام با عنوان نگاهی به Adobe ColdFusion مراجعه کنید .

Service

علاوه بر بخش های runtime ، ابزارها ، فریم ورک ، سرور و … ادوبی خدماتی برای ارتقا و توزیع برنامه های فلش نیز ارائه می دهد که در سه بخش فعال می باشند . این بخش ها برای کمک به فرآیند توزیع ، فرآیند همکاری و برنامه های شبکه های اجتماعی ، دسته بندی می شوند .

اکو سیستم

Runtime ، سرور ، فریم ورک ، ابزار ها و سرویس ، بخش های مختلف فلش پلتفرم را تشکیل می دهند . این پلتفرم توسط برنامه های پشتیبانی ، شرکای تجاری و جامعه کاربران حمایت می شود .

ادوبی ، برنامه های پشتیبانی را برای سازمان ها ، کار گروه ها ، توسعه دهندگان و افرادی که در کلاس جهانی با پلتفرم فلش کار میکنند فراهم آورده است تا در مرحله ی توسعه با کمترین مشکلات پشتیبانی مواجه شوند . تیم های ادوبی به سوالات شما پاسخ می دهند . برنامه های پشتیبانی برای به حداقل رساندن هزینه های خرابی برنامه ها در سازمان های بزرگ و آسان کردن روند توسعه برای برنامه نویسان به وجود آمده اند .

آزمایشگاه ادوبی “فرصت امتحان کردن و کار کردن با تکنولوژی ها و محصولات جدید را قبل از انتشار به شما می دهد .

فلش پلتفرم هر دو طیف شرکای تجاری و اکوسیستم را با هم پوشش می دهد . شرکت ها و راهبران صنعت مانند SAP, SpringSource, Salesforce.com, Zend, Facebook و بسیاری دیگر از این شرکا بستر های توسعه ، پشتیبانی و سرویس ها و خدماتی اضافه بر آنچه ، ادوبی ارائه می کند برای شما فرا هم می آورند .

بیش از یک میلیون نفر از برنامه نویسان و توسعه دهندگان برنامه های اینترنتی غنی از فلش پلتفرم استفاده می کنند و تعداد بسیار بیشتری از جوامع آن لاین و محلی برای به اشتراک گذاری تجربیات و بسط دانش وجود دارند . تعداد و محل این انجمن ها و جوامع ثابت نیست ، ولی تعدادی که ادوبی به آن ها کمک برای رشد و توسعه کمک می کند عبارتند از :

به طور خلاصه :

ادوبی فلش پلتفرم عبارت است از مجموعه ای از فنا وری های یکپارچه ، run-time ، ابزارها ، فریم ورک ، سرور و سرویس است که تواما با هم به همه نیاز های شما برای ایجاد و گسترش برنامه های غنی اینترنتی ( Rich Internet Application ) برای جامعه وسیعی از کاربران ، پاسخگو است . این ترکیب قدرتمند از ابزار های توسعه ، محیطی ایده ال برای رشد و گسترش برنامه های اینترنتی ، در هر سطحی از کسب و کار است .

 


چرا Action Script 3.0 ؟

 

اکشن اسکریپت ۳ همزمان با فلش پلیر ۹ به جامعه برنامه نویسان معرفی شد . آمار ها و بازخورد های نشان می دهد جامعه فلش با رویکردی همراه با خشنودی از اکشن اسکریپت ۳ استقبال کرده اند .

با این همه هنوز گروه بزرگی از طراحان وجود دارند که از اکشن اسکریپت ۳ استفاده نمی کنند . بسیاری از موارد در اکشن اسکریپت ۳ وجود دارد که نیاز به کد نویسی بیشتری نسبت به همتای پیشین خود ، اکشن اسکریپت ۲ دارد . من امیدوارم در این مبحث به برخی از نگرانی ها در مورد اکشن اسکریپت ۳ پاسخ بدهم و این باور را برای کسانی که هنوز از اکشن اسکریپت ۲ استفاده میکنند ایجاد کنم تا زین پس در پروژه های خود منحصرا از اکشن اسکریپت ۳ استفاده نمایند .

ما متوجه شده ایم که دو نوع از برنامه نویسان برای اکشن اسکریپت وجود دارد . یک دسته را برنامه نویسان و توسعه دهندگانی تشکیل می دهند که قبلا با سایر زبان ها نظیر جاوا و سی شارپ کار کرده اند . برای این دسته یادگیری اکشن اسکریپت بسیار راحت است . به این دلیل که اساس اکشن اسکریپت ۳ ، به این زبان ها بسیار شبیه است . دومین دسته را برنامه نویسان رابط گرافیکی (interactive) و طراحان تشکیل می دهند . این دسته ، از اکشن اسکریپت برای طراحی رابط کاربر و یا متحرک ساختن بخشی از برنامه استفاده می کنند . این دسته معمولا از کد در تایم لاین بهره می برند و ممکن است تعداد کمی از آن ها از برنامه نویس شئ گرا اطلاعاتی داشته باشند و یا از آن استفاده کنند .من خودم زمانی از این دسته دوم بودم . در اینجا مخاطب ما افرادی ، غالبا از دسته دوم هستند که برای مهاجرت به اکشن اسکریپت ۳ مرددند .

کمی تاریخچه

پیشتر در نسخه ۴ فلش اکشن اسکریپت اعلام موجودیت کرد . آن زمان هدف آن کنترل رابط گرافیکی کاربر بود و دستور العمل های آن برای طراحان تا حد امکان ساده گشته بود . نسخه اولیه اکشن اسکریپت syntax بسیار متفاوتی نسیت به ECMAScript داشت اما بعد ها هر چه بیشتر ، به این زبان نزدیک شد .

اکشن اسکریپت ۱ در فلش پلیر ۵ معرفی شد که دستورات آن شباهت زیادی به مادرش ECMAScript داشت . با عرضه فلش پلیر نسخه های ۶ و ۷ این زبان در برخی موارد تغییراتی جزیی داشت ولی در اصل تغییری زیادی نکرد .

اکشن اسکریپت ۲ در فلش mx 2004 و فلکس ۱٫۰
معرفی شد . با این حال با فلش پلیر نسخه های ۶ و ۷ نیز سازگار بود . علت این امر این بود که اکشن اسکریپت ۲ در اصل یک زبان مستقل نبود و در لایه بالایی اکشن اسکریپت ۱ سوار شده بود . در نتیجه اکشن اسکریپت ۲ کارایی بالاتری ارائه نمی کرد و مانند اکشن اسکریپت ۱ بود .

در طول مراحل برنامه ریزی فلش ۹ مشخص شد که نمی توان موتور اکشن اسکریپت جدید را بر روی اکشن اسکریپت ۱ و ۲ استوار کرد . در نتیجه ادوبی شروع به بازنویسی کامل Actionscript Virtual Machine (AVM) کرد . نتیجه کار چیز بسیار بهتری به نام AVM2 بود . هدف این امر توسعه اکشن اسکریپت ۳ بر مبنای AVM2 بود . با اماده شدن این موتور اکشن اسکریپت ۳ ارائه شد .

دلایل استفاده از اکشن اسکریپت ۳

در زیر عنوانی را در برتری و مزایای اکشن اسکریپت ۳ بیان میکنم .

۱ – بالا بودن دامنه مهارت

تمامی نسخه های جدید فلش و فلش پلیر برای اکشن اسکریپت ۳ بهینه شده اند . تمام کار های بزرگ در حال حاضر منحصرا برای اکشن اسکریپت ۳ است و شما کار های زیادی را برای اکشن اسکریپت ۲ از طرف کار فرماها نمی بینید . بنابراین اگر کسب و کار شما مبتنی بر اکشن اسکریپت است ، یادگیری اکشن اسکریپت ۳ بسیار ضروری است .

۲ – همه چیز برای سریع تر ساختن خواهد بود

توسعه دهندگان فلش ایده های داغی دارند ولی اغلب برای اجرا ی آن به دلیل محدود بودن فلش پلیر نا امیدند . اکشن اسکریپت ۳ تا ۱۰ برابر افزایش عملکرد نسبت به همتای قبلی خود دارد در بعضی از موارد این میزان بیشتر از این مقدار است . این بدین معنی است که در یک زمان شما دسترسی به اشیایی بسیار بیشتر و بزرگتری در برنامه خود خواهید داشت . اگر می خواهید برنامه هایی بدون محدودیت بنویسید اکشن اسکریپت ۳ هدف نهایی شماست .

۳- فراوانی API های جدید

به عنوان توسعه دهندگان فلش ما عاشق اسباب بازی ها و کار کردن با آن ها هستیم . چیدن اسباب بازی های کوچکتر در کنار هم پروژه های بزرگتر را می سازد .

اکشن اسکریپت ۳ شامل صدها API جدید برای کار کردن با چیز هایی مثل XML ، عبارات منظم ، سوکت های باینری و بهتر از این ها در اختیار داشتن کلاس ها و فضا های نامی منظم جهت استفاده در پروژه هاست .

۴ – ساختار شئ گرایی بهتر

توسعه دهندگان برنام های فلش از قابلیت های شئ گرایی موجود در اکشن اسکریپت ۳ بسیار خوشحال شدند . برنامه نویسی شی گرا در اکشن اسکریپت ۳ به طور محسوسی بهبود یافته . چیزهایی مثل کلاس های مهر و موم شده ، Pakeage ، NameSpace و مدیریت رویداد ها به کمک توسعه دهندگان آمده است . برنامه نویسی در اکشن اسکریپت ۳ بسیار به زبان های سطح بالا مانند جاوا و سی شارپ شبیه شده است . ویژگی های جدید باعث شده است برنامه های شما ساخت یافته ، منعطف ، خوانا و قابل تغییر باشد . برخی از این ویژگی ها شاید برای برنامه نویسانی که رابط گرافیکی را توسعه می دهند ، هم اکنون مورد نیاز نباشد . اما زمانی که شما بخواهید برنامه نویسی حرفه ای تری را تجربه کنید این موارد به مدد شما خواهند آمد .

۵ – لذت بیشتر در کار با اکشن اسکریپت ۳

ممکن است این یک نظر شخصی باشد ولی من کاملا آن را باور دارم . از هرکسی که با اکشن اسکریپت ۳ کار کرده است اگر بپرسید حاضر است به عقب بر گردد و پروژه ها را با اکشن اسکریپت ۲ انجام دهد ، پاسخی مبنی بر مثبت بودن این احتمال دریافت نمی کنید . نسخه های قبلی زبان ، بسیاری از اشکالات را به همراه دارند که حل آن ها ، در مقام مقایسه ، با اکشن اسکریپت ۳ آسان به نظر می رسد .

۶- سازگاری تکنولوژی و آینده

اگر بعد از خواندن تمامی این مزایا شما هنوز نمی خواهید با اکشن اسکریپت ۳ شروع به برنامه نویسی کنید ، مشکلی نیست . می توانید ادامه پروژه های خود را همچنان با اکشن اسکریپت ۲ ادامه دهید . اما در نگاه به عنوان یک پلتفرم ، فلش توسعه می یابد و تکنولوژی های جدید همگی برای اکشن اسکریپت ۳ در دسترس هستند .به عنوان مثال Adobe Flex 3 و Adobe Air به اکشن اسکریپت ۳ برای کار نیاز دارند . بنابراین اگر می خواهید با تکنولوژی های جدید ارتباط بگیرید ، انتخاب اکشن اسکریپت ۲ ، انتخاب گزینه درست نیست .

سوالات رایج در مورد اکشن اسکریپت ۳

در اینجا به برخی از سوالات ، که در رویارویی با اکشن اسکریپت ۳ ، برای برنامه نویسان به وجود می آید را نگاهی می اندازیم و سعی میکنیم پاسخ مناسبی به این سوالات بدهیم .

چرا اکشن اسکریپت ۳ نیاز به کد بیشتری ، نسبت به اکشن اسکریپت ۲ دارد ؟

پاسخ کوتاه این است که در بسیاری از موارد اکشن اسکریپت ۳ نیاز به کد بیشتری نسبت به اکشن اسکریپت ۲ ندارد . بیشتر مردم در مورد این سوال به یاد نحوه کد نویسی برای رویداد کلیک در مورد یک دکمه خاص و تابع add event listener می افتند . در این مورد ممکن است شما در ظاهر تعداد خط های بیشتری برای نوشتن کد نیاز داشته باشید ولی در عمل آن چند خط اضافی کد ، مسولیت بهتر ساختن مدیریت و خوانایی برنامه را به عهده دارند . اگر شما این مدل مبتنی بر اصول شئ گرایی را در سریع تر ساختن ، ساخت برنامه های خود درک کنید ، دیگر از این امر ایراد نخواهید گرفت .

چرا نمی توانم برای اشیا مستقیما کد بنویسم ؟

متا سفانه این عمل با عث سردرگمی در پروژ های بزرگ می شود . در بسیاری از موارد این گونه پروژه ها بدون هیچ هسته مرکزی ، گسترش یافته اند .

شاید پیوست کد به اشیا ساده تر و سریع تر به نظر بیاید ، اما شما بدلیل اینکه کدی مرکزی در اختیار ندارید بسیار بیشتر زمان صرف گسترش ، نگهداری و خواندن برنامه خواهید کرد . به همین دلیل تیم توسعه فلش تصمیم به حذف این قابلیت در فلش و پروژه های اکشن اسکریپت ۳ گرفتند .

چه می شود اگر نخواهم همه چیز را در کلاس ها بنویسیم ؟

یکی از تصورات غلط در مورد اکشن اسکریپت ۳ ، این است که شما برای کد نویسی هر چیزی باید از کلاس ها استفاده کنید . در واقع این درست نیست . شما هنوز می توانید از اکشن اسکریپت در timeline استفاده کنید . این کاری است که من در خیلی از پروژه ها انجام می دهم . اما زمانی که شما احساس کرده اید که به برنامه نویسی شی گرا نیاز دارید ، مسیر آن برای شما هموار است .

چرا ادوبی تمام تمرکز خود را بر روی برنامه نویسان گذاشته است ؟

من می توانم درک کنم که اکنون ممکن است این طور به نظر برسد . اما در عمل ادوبی اکنون زمان زیادی را برای توسعه فلش برای طراحان صرف می کند . اکشن اسکریپت ۳ ، برای توسعه دهندگان ضروری بود تا آن ها به سطح بعدی در فلش بروند . حال که اکشن اسکریپت به تکامل رسیده است ، ادوبی توان خود را بر روی طراحی ویژگی های بصری و انیمیشن گذاشته است . فقط کافی است به لیست امکانات فلش پلیر ۱۰ نگاهی بیندازید تا ببینید که اکثر قابلیت های جدید آن مانند ۳D ، فیلترهای سفارشی و مواردی از این دست در پاسخ به نیاز طراحان است .

از اینجا به کجا بروید

  • به مقاله “اکشن اسکریپت ۳ را چگونه یاد بگیریم ؟ “می توانید مراجعه کنید این مطلب را خودم در مهرماه نوشته و بر روی سایت قرار داده ام . در این مقاله کتاب ها و منابع دیگری را که در امر یادگیری اکشن اسکریپت ۳ نیاز دارید را مورد کاوش قرار داده ام .
  • به مقاله بررسی اجمالی اکشن اسکریپت ۳ نیز می توانید مراجعه کنید . این مطلب در بر دارنده نکاتی پیرامون ECMAScript برای XML(E4X) است . متن این مطلب به زبان انگلیسی است .

برای باقی موارد می توانید سوالات خود را در هر سطحی ، اینجا مطرح کنید . مطمئن باشید به تک تک سوالات شما با دقت و روی باز پاسخ خواهیم داد .

 


تبدیل Flash به Silverlight

 

توسط ابزار SilverX میتونید فایل های فلش خودتون رو به فایل های سیلورلایت تبدیل کنید

دانلود swf2silverlight

البته : فقط یه فلش دیگه می تونه جای  فلش رو بگیره

 


Adobe AIR چیست ؟

 

 Adobe AIR چیست و چه خصوصیاتی دارد؟

شايد اين اواخر ديدن نام Adobe AIR و يا همين قبل تر ها Adobe Apollo توي سايت ها و بلاگ هاي خارجي و ايراني ديگه براي ما عادي شده. شايد به همين قدر اطلاعات کفايت کرديم و از آن گذشتيم، شايد هم بيشتر علاقمند شديم و رفتيم سراغ مقالات بيشتر و اختصاصي تر. دنبال نمونه پروژه هاي داخل اينترنت گشتيم و حتي source بعضي از اپليکيشن هاي حاضر و آماده رو دانلود کرديم و يه نگاه بهش انداختيم. در هر حال الان به طور اجمالي ميدونيم که AIR چيه و چه ميکنه. ميدونيم که يه اپليکيشن AIR با چه مهارت ها و تکولوژي هايي قابل پياده سازيِ. به زبان بسيار ساده ميتونيم بگيم که ما با استفاده از يک اپليکيشن AIR که ميشه گفت دقيقا يک اپليکيشن ويندوزي است ميتونيم به وب دسترسي داشته باشيم. ميتونيم بگيم که AIR نوعي ويدجت وبي ست. يا نوعي گدجت....
به هر حال در هر نوع و يا هر حالتي تعبيرات متفاوتي از Adobe AIR براي خودمون ساختيم و يا همونطور که قبلا هم گفتم اصلا سراغش نرفتيم که بخواهيم تعبيري براي خودمون بسازيم. حال بهتر اونه که ببينيم خود Adobe  و کارشناسانش در مورد AIR چه نظري دارند و در سايت ها و مقالات و کتابهاي مرتبط به چه صورتي اون رو معرفي ميکنند:

Adobe Integrated Runtime با نام اختصاري-تجاري AIR يک Runtime قابل اجرا در هر نوع سيستم عامل (cross-operating system runtime) موجود بر روي رايانه ي شما مي باشد که به شما اين امکان را مي دهد که با هر نوع مهارت طراحي وب از قبيل JavaScript ،HTML ،Flex ،Flash و يا Ajax يک محصول RIA يا همان Rich Internet Applications را ايجاد کرده و آن را براي Desktop رايانه Deploy نمائيد. AIR همچنين به شما اين امکان را مي دهد که با کار در يک محيط آشنا و به طبع آن با احساس راحتي بيشتر و با کمک پشتيباني اون از تکنولوژي هاي فوق بتوانيد بهترين اپليکيشن ممکن براي رفع تمام نياز هاي خود را بسازيد.
در ادامه مبحث AIR و تکنولوژي هايي که به طريق آنها ميتوان Adobe AIR رو پياده سازي کرد، بايد گفت که ميتوان با کمک يکي از موارد زير و يا حتي ترکيب هر کدام از آنها يک پروژه ي AIR طراحي و پياده سازي کرد:
. Flash / Flex / ActionScript
. HTML / JavaScript / CSS / Ajax
. PDF نيز ميتواند در هر نوع اپليکيشني از اين دست موجود باشد...
در نتيجه، اپليکيشن هاي AIR ميتوانند:
. بر پايه ي Flash يا Flex باشند. اپليکيشن هايي که محتواي آنها  Flash و يا Flex و يا ترکيب اين دوست.
. بر پايه ي Flash يا Flex همراه با HTML يا PDF باشند. آنهايي که محتواي آنها شامل Flash و يا Flex به همراهي HTML (و همچنين JS و CSS) يا PDF مي باشند.
. بر پايه ي HTML باشند. يعني آنهايي که محتواي آنها توسط JavaScript ،HTML و يا CSS پياده سازي مي شوند.
. بر پايه ي HTML باشند و به کمک Flash/Flex و يا PDF. به اين صورت که پايه ي کار HTML بوده و اپليکيشن ما از Flash/Flex و يا PDF کمک مي گيرد.
نکته ي بسيار جالب اين است که کاربران پروژه هاي AIR به همان صورت از آن استفاده ميکنند که از اپليکيشن هاي عادي تحت ويندوز خود. Runtime مورد نياز براي اجراي اپليکيشن هاي AIR تنها يک بار بر روي دستگاه کاربر نصب شده و بعد از آن تنها کافيست که پروژه هاي تحت Adobe AIR را نصب کرده و بعد دقيقا مانند يک اپليکيشن ويندوزي (desktop application) از آن استفاده کنيم.

Adobe AIR runtime يک پلتفرم سازگار براي ايجاد اپليکيشن هاي Cross-OS (اپليکيشن هايي که بدون در نظر گرفتن نوع سيستم عامل، در هر نوع OS اي قابل اجرا باشند) و يک framework مخصوص براي اين اپليکيشن ها ايجاد ميکند که به اين ترتيب وابستگي به مرورگرها و به طبع آن مشکلاتي که براي يک اپليکيشن در هنگام اجرا در مرورگرهاي متفاوت رخ ميدهد را از بين ميبرد. يعني به جاي طراحي يک اپليکيشن براي يک سيستم عامل خاص و يا در نظر گرفتن يک سري خصوصيات ويژه مربوط به يک مرورگر خاص ما Runtime مورد نظر را هدف قرار داده و بي هيچ دغدغه اي از اين حيث، اپليکيشن خود را ايجاد ميکنيم. از مزاياي اين مورد ميتوان به موارد زير اشاره کرد:
. اپليکيشن هاي توسعه يافته براي AIR در هر نوع سيستم عاملي بدون انجام هيچ کار اضافه اي توسط شما اجرا مي شوند. Adobe Runtime تمام تراکنش ها و تعامل هاي موجود با سيستم عامل را در تمامي حالات به صورت کاملا مطمئن انجام داده و مديريت مي کند.
. با کمک Adobe AIR طراحي تمام اپليکيشن هاي بر پايه ي آن، به علت وجود يک الگو و زمينه مشخص بسيار ساده تر و سريع تر انجام پذير است. اين امکان براي شما وجود دارد که اپليکيشن web based خودتون رو بدون نياز به آموختن هيچ گونه زبان برنامه نويسي سنتي تحت ويندوزي به عنوان يک پروژه ي ويندوزي و براي desktop طراحي کرده و توسعه دهيد. اين روش بسيار ساده تر از استفاده از يک زبان برنامه نويسي سطح پائين مثل C و يا ++C بوده و ديگر نيازي نيست شما توابع پيچيده API مربوط به هر سيتم عامل مجزا را براي پياده سازي اپليکيشن خود تحت آن سيتم عامل، بلد باشيد.
وقتي يک اپليکيشن AIR را پياده سازي ميکنيم، مي توانيم از مجموعه ي غني اي از فريم-ورک ها و  توابع API سود ببريم:
. توابع API مخصوص به AIR توسط Runtime و فريم ورک آن ارائه مي شوند و در هر سيستمي يکسان است.
. توابع ActionScript API در يک فايل SWF و يا فريم ورک Flex وجود داشته و استفاده مي شوند. (به همان خوبي کتابخانه ها و فريم-ورک هاي بر پايه ي ActionScript)
در کل، Adobe AIR نمونه اي ارائه داد که به طريق آن نحوه طراحي، پياده سازي و توسعه ي اپليکيشن ها به طور هيجان انگيزي تغيير کرده بود. ما با دست بازتر و کنترل بيشتري يک اپليکيشن طراحي کرده و توانستيم پروژه ي تحت HTML ،Flex ،Flash ويا Ajax خود را به عکس معمول، تحت ويندوز ارائه و توسعه دهيم، در حالي که ديگر هيچ نيازي به آموختن هيچگونه زبان برنامه نويسي سنتي ِ تحت ويندوزي نداشتيم....