Ads by Khatereh

 فلش فراتر از انيميشن

Flash MX ديگر تنها يك ابزار توليد مالتى مديا نيست بلكه آن را مى‏توان يك زبان برنامه نويسى ويژوال ناميد.

فلش (Flash) يك نمايش دهنده گرافيكهاى بردارى بر روى وب (Web) است كه قضاوت درباره آن بستگى به ديدگاه شما و مهارت طراح دارد. اما ماكرومديا (Macromedia) ايده ‏هاى ديگرى دارد. در مصاحبه ‏اى جديد با "Jeremy Allarie" مدير فن آورى ماكرومديا، او اظهار نمود كه: "ما كاملا بر روى تبديل فلش به يك Client قدرتمند تمركز نموده‏ايم و فكر مى‏كنيم كه سازندگان نرم‏افزار آن را مفيد خواهند يافت". ايده اين است كه شما رابط كاربر نرم‏افزار خود را در فلش ساخته و قابليت مستقل بودن از سكو (Platform) و يك سرى ويژگيهاى ديگر را بدست آوريد كه برخلاف Java براى گرافيك و مالتى‏مديا بهينه شده‏اند. بنا به اظهار Allaire : "ما گستردگى 98.3 درصد را بدست آورده‏ايم. اين گسترده‏ترين ميزان پخش يك برنامه در تاريخ كامپيوتر است."

البته Client فلش مطمئناً در مقابل تواناييهاى Java چيزى براى گفتن ندارد و زبان برنامه‏نويسى آن اقتباسى از Javascript است. در عوض فلش داراى runtime كوچكى در حدود 350KB است. همچنين انيميشن‏هاى فلش نياز ندارند كه حتماً در صفحات وب درج شوند بلكه Projector فلش به شما امكان توليد فايلهاى .exe تحت ويندوز را مى‏دهد اگرچه بايد وجود پنجره Projector پيرامون برنامه‏تان را بپذيريد. شما همچنين مى‏توانيد يك انيميشن فلش را درون يك فرم ويژوال بيسيك با استفاده از Shockwave Flash ActiveX Control درج نماييد.

اما اينكه كارى را مى‏توان انجام داد دليل منطقى براى انجام آن نيست. چرا ما بايد به جاى مثلا C++ ، Java يا ويژوال بيسيك از فلش استفاده كنيم؟ پاسخ اين است كه فلش انجام كارهايى كه در محيطهاى ديگر دشوار است را آسان مى‏نمايد. فلش يك ابزار عالى براى گرافيك و انيميشن است. اگر شما مى‏خواهيد يك رابط كاربر سفارشى با buttonها، tabها و Scrollbarهاى داراى ظاهرى منحصر به فرد ايجاد نماييد بهترين گزينه شما فلش است. همچنين قدرت انتخاب اجراى برنامه بصورت مستقل و يا تحت يك مرورگر (browser) بر جذابيت فلش مى‏افزايد. اما روى ديگر سكه آن است كه فلش داراى ضعفهاى بيشمارى در ايجاد نرم افزارهاى همه منظوره است. تاكنون بزرگترين مشكل اين بوده است كه فلش داراى هيچ مكانيزم داخلى براى دسترسى به بانكهاى اطلاعاتى نيست. همچنين احتمالا شما قصد نداريد كه الگوريتمهاى پيچيده تجارى را درون يك برنامه فلش كدنويسى نماييد. پس آنها را بايد در كجا قرار داد؟

در Flash 5 روشهايى براى دسترسى به داده ‏هاى خارجى وجود دارد. رويداد FsCommand داراى يك آرگومان به نام "exec" است كه به شما اجازه مى‏دهد يك برنامه خارجى را اجرا نماييد و يا اگر در يك مرورگر استفاده شود يك اسكريپت سفارشى مرورگر اجرا مى‏گردد. LoadMovie يك Movie جديد فلش را درون Player فراخوانى مى‏كند و در صورت داشتن چيزى مشابه Generator بر روى سرور، امكان لود (load) داده‏ها و گرافيكها بصورت پويا نيز وجود دارد. GetURL به شما اجازه انجام GET يا POST يك URL از قبيل CGI Script يا Servlet و ارسال متغيرها بصورت پارامتر را مى‏دهد. LoadVariables قادر است مقادير را از يك فايل بخواند. جالبتر از اينها XML Object است كه اجازه مى‏دهد شما يك فايل XML را از يك URL لود و داده‏هاى XML را پس بفرستيد. با استفاده از اين تكنيكها شما مى‏توانيد يك برنامه فلش كه مى‏تواند با دنياى خارج ارتباط برقرار كند، بسازيد ولى اين كار ساده‏اى نيست.

Flash Remoting :
Flash MX با دارا بودن ويژگى به نام Flash Remoting همه چيز را تغيير داده است اين ويژگى به برنامه فلش شما اجازه برقرارى ارتباط با آبجكتهاى Server-Side شامل كلاسهاى Java، كامپوننتهاى Cold Fusion و يا سرويسهاى وب .NET را مى‏دهد.

Flash Remoting از يك پروتكل باينرى بهينه بر روى HTTP استفاده مى‏كند و براى استفاده از آن بايد به يك سرويس Flash Remoting كه پروتكل فلش را مى‏فهمد متصل شده و سپس سرويسهاى موردنياز را فراخوانى نماييد. همچنين Flash Remoting API شامل آبجكتهاى Recordset و DataGlue است كه براى نخستين بار فلش را داراى ويژگيهاى داخلى دسترسى به بانك اطلاعاتي نموده‏اند. براى مثال شما مى‏توانيد با استفاده از متد SetDataProvider ، يك ListBox را به يك Recordset متصل نماييد.

محيط Server-side مورد توصيه ماكرومديا براى Flash Remoting محيط Cold Fusion MX است. Cold Fusion يك زبان اسكريپت‏نويسى Server-side است كه تا حدودى مشابه PHP ،ASP و JavaServer مى‏باشد. در نمونه جديد آن يعنى Tag ، Cold Fusion MXها به Java Servlet كامپايل و تبديل شده و بر روى Java Aplication Server ماكرومديا، JRun و يا محيطهاى ديگر J2EE اجرا مى‏گردند. يك مزيت اين تكنيك در اين است كه مى‏توان به سادگى آن را با كلاسهاى Server-side ديگر Java يكپارچه نمود.

Cold Fudion MX داراى پشتيبانى داخلى از Flash Remoting Server است خوشبختانه براى كسانى كه از تكنولوژيهاى ديگر استفاده مى‏كنند نيز سرويس Flash Remoting موجود است. اين سرويس براى نصب بر روى ASP.NET و يا هر سرور J2EE قابل دسترسى مى‏باشد.

به هر حال اين نرم‏افزار تنها در صورتى به شما كمك خواهد نمود كه داراى يك Web server براى قراردادن كامپوننتهاى Server-side باشيد. اين نرم‏افزار به شما اجازه فراخوانى dllها يا آبجكتهاى COM محلى (local) را نمى‏دهد. بنابراين فلش جايگزين ويژوال بيسيك نخواهد شد. اگرچه اغلب برنامه‏هاى جديد مبتنى بر شبكه هستند و براى مستقل بودن از سكو، فراخوانى كتابخانه‏هاى محلى مشكل ساز خواهد بود.

رابط كاربر فلش:
Flash MX داراى عناصر رابط كاربر جديدى است كه براى سازندگان نرم‏افزار طراحى شده‏اند. اين عناصر شامل Scroll Bar ،Radio Button PushButton ،ComboBox ،ListBox ،CheckBox وScrollPane مى‏گردد. فلش هم اكنون نيز داراى پشتيبانى خوبى از ورودى متن از طريق آبجكتهاى Text Field مى‏باشد.

در ادامه مثالى از ايجاد يك برنامه ساده فلش را خواهيد ديد. اين مثال يك برنامه to-do list است كه اغلب در معرفى و نمايش سازنده‏هاى فرم ويژوال به كار مى‏رود.

Flash MX -1 را اجرا و خصوصيات پهنا و درازاى Frame را به ترتيب برابر 300 و 350 پيكسل قرار دهيد. پنجره Components را به نمايش درآورده و يك ListBox ، يك Input field و دو Button را بر روي آن قرار دهيد.

2- به آبجكتهاى فوق به ترتيب نامهاى btnAdd ، txtItem ، listToDo وbtnDelete را بدهيد. به فيلد متنى، نام متغير varItem را بدهيد.

3- يك layer جديد افزوده و آن را Script بناميد. در پانل Actions مطمئن شويد كه ليست بالايى عبارت "Actions for Frame 1 of layer name Script" را نشان مى‏دهد. حال Expert Mode را انتخاب و كد زير را وارد نماييد:

function AddToList() {
ListToDo.addItem (varItem);
}

function RemoveFromList () {
ListToDo.removeItemAt (ListToDo.getSelectedIndex());
}

براى اطمينان از وجود نداشتن Syntax Error در كد مى‏توانيد بر روى علامت تيك آبى رنگ كليك نماييد. خطاهاى احتمالى در پنجره Output ظاهر خواهند شد. ضرورتى ندارد كه شما اسكريپتها را در layer جداگانه‏اى قراردهيد اما اين كار موجب سادگى مديريت برنامه مى‏گردد.

4- حال Layer1 را انتخاب نماييد. رويداد Click دكمه Add آن را بر روى AddtoList و رويداد Click دكمه Remove را بر روى RemoveFromList تنظيم نماييد.

5- اجراى اين Movie را بوسيله Control-Test Movie آزمايش نماييد. اگر همه چيز درست باشد شما مى‏توانيد آيتمى را در فيلد متنى وارد و براى افزوده شدن آن به ليست دكمه Add را كليك كنيد. سپس آن را در ليست انتخاب و با زدن دكمه Remove حذف نماييد.

اين يك مثال ساده است اما نشان مى‏دهد كه فلش در ساخت رابطهاى كاربر ساده به راحتى ويژوال بيسيك مى‏باشد. ولى با اين تفاوت كه فلش مستقل از سكو بوده و در هر محيطى اجرا مى‏گردد و طراحان مى‏توانند به برنامه‏هاى خود انيميشن، دكمه‏هاى سفارشى و جلوه‏هاى ويژه را بيفزايند كه در ابزارهاى برنامه‏نويسى سنتى كار دشوارى است.

ساليان طولانى است كه به برنامه‏نويسان توصيه مى‏شود از الگوهاى طراحى ارائه شده توسط مايكروسافت يا اپل استفاده نموده و برنامه‏هايى با ظاهر و عملكرد مشابه توليد نمايند. اما ظهور Web نشان داده است كه تنوع و نوآورى نيز جايگاه ويژه‏اى دارد و تركيب طراحى فلش با منطق برنامه نويسى ضرورى است.

زبان Actionscript :
احتمالا فكر اينكه بايد يك زبان ديگر را نيز ياد بگيريد از هم اكنون شما را نگران كرده ولى نيازى به اين كار نيست زيرا ActionScript در اصل همان JavaScript است كه با نام Ecmascript يا بطور دقيقتر ECMA-262 نيز شناخته مى‏شود. اغلب برنامه‏نويسان JavaScript را آموخته‏اند بنابراين استفاده از ActionScript نبايد براى آنها چندان مشكل باشد. البته فلش داراى مجموعه متفاوتى از آبجكتهاى قابل دسترس براى برنامه‏نويسى است كه بايد آنها را ياد گرفت.

خطايابى:
Flash MX داراى خطاياب (debugger) پيشرفته‏اى است. شما مى‏توانيد با كليك راست بر روى كد و انتخاب Set Breakpoint نقاط توقف را مشخص نماييد. با انتخاب Control-Debug Movie برنامه در حالتى كه امكان خطايابى نيز فعال است اجرا مى‏گردد. در هنگام اجرا شما مى‏توانيد مقادير متغيرها و خصوصيات را ديده و كد را خط به خط اجرا نماييد.

توليد فايل نهايى:
پيش از اينكه فايل نهايى را توليد نماييد، تنظيمات بخش File-Publish را كنترل كنيد. بطور پيش فرض گزينه‏هاى .swf و .html انتخاب شده‏اند. اين به آن معنى است كه فلش، فايل swf را كه صورت كامپايل شده برنامه شما است را توليد و همچنين يك صفحه وب براى ميزبانى آن مى‏سازد. اگر به كد HTML توليد شده نگاهى بيندازيد چيزى مشابه کد زیر را خواهيد ديد.


<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase= "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="300" height="350"> <param name="movie" value="Flash todo List.swf">
<param name="quality" value="high"><param name="BGCOLOR" value="#FFFFFF">
<embed src="Flash todo List.swf" width="300" height="350" quality="high" bgcolor="#FFFFFF" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"> </embed>
</object>


تمام اين كد براى ايجاد يك tag سازگار با Internet Explorer كه از يك كنترل ActiveX استفاده مى‏كند و همچنين Netscape كه از يك Plug-in استفاده مى‏كند مى‏باشد. شما مى‏توانيد كد توليد شده را به سادگى از طريق Cut و Paste به صفحه وب خود منتقل نماييد. همچنين مى‏توانيد از امكانات نرم افزارهاى ويرايش صفحات وب مانند Dreamweaver نيز براى درج فايل فلش استفاده نماييد.

البته ممكن است شما اصلا كارى به وب نداشته باشيد، در اين صورت مى‏توانيد گزينه Windows Projector را انتخاب كنيد. در اين حالت فلش يك فايل اجرايى تحت ويندوز مى‏سازد كه براى اجراى آن يك دبل كليك كافى است. البته برنامه شما ديگر مستقل از سكو نبوده و وابسته به ويندوز است.

شايد مايل باشيد قابليت تغيير اندازه دادن برنامه را تغيير دهيد. يك روش مناسب براى اين كار استفاده از fsCommand است. اگر در يك رويداد load يك FsCommand اضافه كنيد، ليستى با عنوان Commands for Standalone player را مشاهده خواهيد نمود. در اينجا مى‏توانيد قابليت تغيير اندازه (Scaling) را فعال يا غيرفعال كرده و يا برنامه را براى شروع به صورت تمام صفحه (Full-screen) تنظيم نماييد كه روشى خوب براى حذف منوهاى Projector در هنگام نمايش است.

بطور پيش فرض برنامه‏هاى فلش بگونه‏اى تغيير اندازه مى‏دهند كه تمام عناصر برنامه متناسب با ابعاد پنجره كوچك يا بزرگ مى‏گردند. اما شايد اين چيزى نباشد كه شما مى‏خواهيد. براى تغيير اين موضوع مى‏توانيد كد كوچكى را در سطح root لايه script وارد نمايد. براى مثال:

fscommand("allowscale","false");
fscommand("fullscreen","true");


اين گزينه‏ ها برنامه را بصورت تمام صفحه و يا با اندازه‏اى ثابت اجرا خواهند نمود.

يك دستور مفيد ديگر، دستور زير است:

fscommand("quit")

آن را به يك رويداد مناسب متصل كنيد تا رخ دادن آن موجب بسته شدن Projector گردد. در صورت تمايل مى‏توانيد نسخه آزمايشى Flash MX و Cold Fusion MX و اطلاعات كامل‏ترى در مورد آنها را از سايت ماكرومديا دريافت نماييد.

منبع: مجله رايانه

 

 

Ads by Khatereh


بازگشت به صفحه اصلي علم و دانش و رايانه

   
 

---------------------------------------------------------------------------------------------
Copyright ©2003-2004 khatereh.net | webmaster@khatereh.net
تمام حقوق برای محمد منشي زاده محفوظ است.