|
فلش
فراتر از انيميشن
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 و اطلاعات
كاملترى در مورد آنها را از
سايت
ماكرومديا دريافت نماييد.
منبع:
مجله
رايانه
|