فلکس چیست؟

نوشته شده توسط

حسین معماریان

در ۲۷ آذر ماه سال ۱۳۸۸

۱۹ دیدگاه

Flex_jpg

در این نوشتار معرفی مختصری خواهم داشت در مورد فلکس و نگاهی به موضوعات ذیل خواهیم انداخت: اینکه چه کاری میتونه انجام بده؟ شناخت بیشتر این تکنولوژی فرق این ابزار با Flash Professional روند تولید برنامه ها

فلکس چیست؟ خب ، فلکس ابزاری است برای تولید برنامه های کاربردی تحت فلش ، با فلکس می توان فایلهای 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 یا کار با داده ها و تعاملات با سرور در این تکنولوژی خواهم نوشت.

۱۹ دیدگاه برای “"فلکس چیست؟"”

  1. در ۲۷ آذر ماه سال ۱۳۸۸

    سایت زیبایی داری،اگر لینک به درون بیشتری داشته باشی،رتبه ات خیلی بیشتر بالا می رود.

  2. حسین معماریان

    در ۲۷ آذر ماه سال ۱۳۸۸

    با تسکر از شما ، چشم، حتما این قضیه رو بیشتر اعمال خواهم کرد.

  3. Reza Mazaheri

    در ۲۸ آذر ماه سال ۱۳۸۸

    با سلام و تشکر بابت اطلاعاتی که در اختیار دیگران گذاشته اید.لطفا تفاوت بین flash player activex و flash player plugin را در صورت امکان برای من توضیح دهید.
    متشکرم.

  4. در ۲۹ آذر ماه سال ۱۳۸۸

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

  5. رضا مظاهری

    در ۳۰ آذر ماه سال ۱۳۸۸

    آقای خدادادی از پاسخی که ارسال کردید متشکرم.

  6. در ۳۰ آذر ماه سال ۱۳۸۸

    چه در فلکس و چه در فلش میشه از MovieClip استفاده کرد. حتی در فلکس مفهومی فراتر از Timeline وجود داره به نام State.

  7. پدرام

    در ۰۱ دی ماه سال ۱۳۸۸

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

  8. حسین

    در ۰۱ دی ماه سال ۱۳۸۸

    از حسن نظر شما متشکرم ،اصلاح شد.
    به نظر من نمیشه تایم لاین رو با state مقایسه کرد چون عملکردشان متفاوت است و امکاناتی که در تایم لاین وجود داره در state نیست هر چند با کدنویسی اکشن اسکریپت قدرت بالایی داره ولی همچنان یک زیر مجموعه ازMXML است ومسیر خود را طی میکند. لذا معرفی زبان MXML در این مقاله رو کافی دیدم و بنده هم قصد نداشتم وارد جزییات ریزتری شوم.در مورد MovieClip هدفم این بود که نشان بدم بدون تایم لاین در فلکس از مووی کلیپ و امکاناتش در تایم لاین نمی توان استفاده کرد! وگرنه با برنامه نویسی هرچیزی امکان پذیر است و اکشن اسکریپت دراین راه کامل. اما اشتباه رو از جانب خود می بینم و ضعف انتقال!
    با تشکر

  9. حسین معماریان

    در ۰۱ دی ماه سال ۱۳۸۸

    با تشکر از نظر شما
    اطلاعات بشر همواره ناقص بوده و هست! بانظرات بازدیدکننده های مثل شما دوست عزیز سعی در تکامل دانش را داریم. در این مقاله سخنی از شئی گرایی به میان نیامده! بنده نتوانستم ارتباطی پیدا کنم! البته شاید منظورتان درانیمیش سازی با مثلا اکشن باشه ولی منظور بنده مورد دیگری بود! منظور از انیمیشن سازی در فلش این نیست که در جای دیگر امکانش نیست! اما به راحتی این ابزار نیست. یعنی نبود تایم لاین و استفاده اجباری از کد.
    در حقیقت مقایسه کردم با خود فلش نه با ابزار دیگه ای! به هرحال این مقاله ناقص و سطحی است. انشاءالله سعی می کنم کاملش رو به زودی بنویسم.

  10. پدرام

    در ۰۱ دی ماه سال ۱۳۸۸

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

  11. حسین

    در ۰۱ دی ماه سال ۱۳۸۸

    سلام
    اصلا ناراحت نشدم!
    منظورتان رو متوجه شده بودم. گفتم که وارد جزییات نشده بودم و این باعث سوء برداشت شده بود!(البته من هم خیلی بد نوشته بودم!) به صورت خیلی سطحی روی محیط ویژوال فلکس صحبت کردم که اگه روی actionscript مانور میدادم آنوقت حرف شما درست می بود.
    باز هم ممنون که به ما سر میزنید. ;)

  12. Khorzu

    در ۰۳ دی ماه سال ۱۳۸۸

    سلام
    خیلی خوب بود .
    ممنون و منتتظر بروز رسانی.
    موفق باشید .

  13. ناشناس

    در ۰۶ بهمن ماه سال ۱۳۸۸

    تا انجایی که من اطلاع دارم
    TimeLine فلش همون کلاس Sprite هست

    پس با کد میشه Timeline نی بهتر از IDE داشت

  14. حسین معماریان

    در ۰۹ بهمن ماه سال ۱۳۸۸

    در کلاسهای اکشن اسکریپت جایگزین مناسبی برای تایم لاین نیست. و تایم لاین کاربرد خودش را دارد.
    کلاس Sprite کارکردی مثل MoieClip داره اما این دو متفاوت از هم هستند. کلاس Sprite مناسب شی هایی است که نیازی به تایم لاین ندارند.
    فقط از سایت ادوبی این جمله رو نقل می کنم:

    A Sprite object is similar to a movie clip, but does not have a timeline

  15. ناشناس

    در ۱۳ بهمن ماه سال ۱۳۸۸

    درسته
    movieclip رو sprite درست میکنه

    timeline فلش از کلاس sprite مشتق شده

    پس با کنار گذاشتن چند sprite میشه یه timeline داشت

    و با یکم کد اضافه میشه timeline رو سفارشی کرد
    مثل tweenmax

  16. دانیال

    در ۱۳ شهریور ماه سال ۱۳۸۹

    لطفا یکنفر من را راهنمایی کند که اگر بخواهیم فایلهای SWF را در برنامه های نوشته شده به زبان Java نشان دهیم چه کار باید بکنیم؟ SDK یا فایل Jar مورد استفاده کدام است؟

  17. محمد

    در ۰۷ آذر ماه سال ۱۳۸۹

    سلام و سپاس از اطلاعاتی که دادید
    من اگر بخواهم کار با فلکس را یاد بگیرم چه باید بکنم
    اطلاعاتم هم بسیار ابتدایی است
    از کجا باید شروع کنم
    ممنون

  18. حسین معماریان

    در ۰۷ آذر ماه سال ۱۳۸۹

    سلام
    در حال حاضر flash builder یک ابزاره و کافیست که شما زبان اکشن اسکریپت ۳ را بلد باشید و کم کم کدها را در این محیط بزنید تا به ابزار مسلط بشوید. البته برای یادگیری زبان MXML یادگیری خاصی نمیخواهد و راحت میتوان فرا گرفت. آموزش تصویری با این ابزار در اینترنت بسیار است کافیست گوگل کنید
    در بخش آموزشی ویدئویی این سایت هم ، آموزشهای تصویری کار با این ابزار را خواهم رفت.
    موفق باشید

  19. سامان

    در ۳۱ اردیبهشت ماه سال ۱۳۹۰

    سلام. مطلب خیلی خوبی بود. ممنون از وقتی که گذاشتید.

دیدگاهی برای ما بنویسید