تعريف شبكه فن‌آوري اطلاعات به عنوان صفحه اصلي

چهارشنبه 19 بهمن 1390
تعداد كاربران آنلاين: 83

فهرست

  اخبار
  مقالات
  مصاحبه‌ها
  نكته‌ها و ترفندها
  قوانين و مقررات
  دريافت نرم‌افزار
  آموزش
  نمايشگاه ‌و همايش‌
  بازيهاي رايانه‌اي
  گزارش
  تبـليغــات
حضرت محمد (ص)

عمل اندك همراه با دانش، بهتر از عمل بسیار همراه با نادانی است.




خبرخواني از شبکه
موفقيت ماهواره سوئيفت در ثبت انفجارات پرتوهاى گاما            کمک به نگهداری و تعمیر کامپیوتر توسط Registry Winner 4.3.2.20            OLED بازار محصولات الكترونيكي را متحول مي‌‏كند            محققان آشکار کردند: امکان سرقت بی سروصدا از بانک‌ها            proxy server            Ms Office With Business Contact Manager 2007            هانی پات - ابزار جدید برای مبارزه با اسپم            Adobe هم Shockwave player اش را تعمیر می کند            طراحان ويروسها به استفاده از دايره‌المعارف ويكي پديا روي آورده‌اند            آيا مي‌دانيد امكان دسترسي به معني لغات در اينترنت با دو كليك امكان پذير است؟            نرم‌افزار OCR زبان فارسي توليد شد            عدم موفقيت سايتهای زيبا در فروش بالا            امكان استفاده از مطالب شبكه فن آوري اطلاعات ايران با كمك RSS فراهم شد            برقراری امنیت پایدار در سیستم با Outpost Security Suite            مايكروسافت از كاربران هات ميل در مقابل اسپم حمايت مي كند            پايگاه هاى اينترنتى پنتاگون ، ابزار جنگ اطلاعاتى            نصب سیستم های الکترونیکی کنترل عبور در مرز کشورهای            سونی تلویزیونهای OLED خود را فقط به شرکت های تول&#            قانون مطبوعات            گوگل به مايکروسافت براي توسعه ويندوز کمک مي کند            

چگونه از FSCommand در ساخت كارهايي حرفه اي در Flash كمك بگيريم
شنبه,23 فروردين 1384 (تعداد دفعات خوانده شده:8656)

منبع از مجله شبكه شماره 51


آشنايي با FSCommand
در اكثر كاربردهاي واقعي, شرايطي پيش مي آيد كه از طراح فلش خواسته مي شود تا از درون فيلم فلش عملي را انجام دهد كه به صورت عادي خارج از حوزه امكانات و قابليت هاي اين نرم افزار است. به عنوان مثال فرض كنيد كه شما به عنوان يك طراح فلش, يك نمايش مقدمه يا اصطلاحا Intro بسيار زيبا براي سايتي طراحي كرده ايد. اگر كارفرما از شما بخواهد كه كليدي براي Bookmark كردن سايت, در پروژه خود بگنجانيد, تكليف شما چيست؟ در بين مجموعه دستورات فلش به دنبال چنين دستوري مي گرديد؟ در چنين موردي و در بسياري از موارد جدي تر, كافي است كه طراح فلش بتواند به روشي, از درون محيط فلش به امكانات مرورگر دسترسي بيابد. در اين صورت به يكباره, دنيايي از امكانات جديد به مجموعه قابليت هاي قبلي نرم افزار فلش افزوده خواهد شد.

از اين مقدمه چيني مي توانيد به راحتي تشخيص دهيد كه دستور FSCommand چنين امكاني را در اختيار كاربر فلش قرار مي دهد. اگرچه اين نتيجه گيري كاملا صحيح است, اما حقيقت آن است كه دامنه كاربردهاي دستور FSCommand در فلش مي تواند بسيار وسيع تر از اين هم باشد.

در واقع دستور FSCommand در فلش, ابزاري است كه ارتباطات بين فيلم هاي فلش و محيط ميزبان اين فيلم ها را برقرار مي كند. در اينجا منظور از محيط ميزبان فيلم هاي فلش, بر حسب مورد مي تواند محيط مرورگر و يا محيط نرم افزار Flash Player باشد. ميزبان محيطي است كه فيلم هاي فلش در درون آن به نمايش در مي آيند و يا اجرا مي شوند. به عنوان مثال, در كاربردهاي تحت وب, دستور FSCommand مي تواند براي اجرا كردن كد جاوا اسكريپت به كار رود ( در ادامه همين نوشته خواهيم ديد كه چگونه مي توان در مسير معكوس حركت كرد, يعني به كمك جاوا اسكريپت, فيلم فلش را كنترل نمود).

در صورتي كه با كار توليد محصولات چند رسانه اي و ابزارهاي آن مانند نرم افزار دايركتور آشنا باشيد, احتمالا اهميت قابليت صدور فرمان از فيلم هاي فلش به محيط ميزباني همچون دايركتور و يا بر عكس را كاملا درك مي كنيد. در واقع مي توان از دستور FSCommand براي برقراري ارتباط با زبان اسكريپت نويسي دايركتور يعني Lingo به خوبي استفاده كرد.

بازگرديم به همان كاربردهاي فراوان تر اينترنتي و وب. قبل از هر چيز بايد به خاطر داشته باشيم كه همه مرورگرها از دستور FSCommand پشتيباني نمي كنند و در صورتي كه در كاربرد واقعي قرار است كه سايت شما در چندين مرورگر به راحتي قابل مشاهده باشد, بايد به اين مسئله توجه كافي داشته باشيد. طبيعي است كه انتظار داشته باشيم تمامي نسخه هاي جديدتر مرورگر اينترنت اكسپلورر (نسخه 4 به بالا) از اين دستور پشتيباني كنند. مرورگر نت اسكيپ نسخه 6 هم با وجود آنكه تفاوت هاي اساسي با مرورگر IE دارد, از دستور FSCommand پشتيباني مي كند (مرورگر نت اسكيپ به جاي استفاده از تكنولوژي اكتيو ايكس, به تكنولوژي ديگري مرسوم به Live Connect براي پشتيباني از FSCommand و نظاير آن متكي است). كاربران مرورگر موزيلا هم مي توانند با ارتقاء دادن Plugin هاي خود, از اين قابليت استفاده كنند. ( در مورد مرورگر پرسرو صداي firefox هنوز اطلاعي ندارم و نمي دانم كه چند و چون كاربرد FSCommand در محيط اين مرورگر چگونه است).

ارتباط دو طرفه
تا اينجا درباره مفهوم دستور FSCommand صحبت كرديم, اما اين دستور چگونه كار مي كند؟ براي تشريح اين موضوع, از كاربرد اين دستور در برقراري ارتباط بين اكشن اسكريپت و جاوا اسكريپت و با لعكس استفاده خواهيم كرد.البته توجه داشته باشيد براي اين مورد خاص, يعني اجراي اسكريپت هاي جاوا اسكريپت از درون محيط فلش, مي توان از تابع ديگري به نام (getURL) در فلش استفاده كرد. اما كاربرد اين تابع تنها محدود به ارتباط با جاوا اسكريپت است و به طور كلي نمي توان از آن براي ارتباط بين فلش و محيط ميزبان بهره گرفت.
در محيط فلش, هر گاه تابع FSCommand اجرا شود, نرم افزار فلش سعي خواهد كرد تا پيامي به جاوا اسكريپت ارسال نمايد. از طرف ديگر, هر گاه مرورگري, فرمان FSCommand را از نرم افزار فلش دريافت كند, بلا فاصله به جستجوي توابع جاوا اسكريپت (و يا VB script) موجود مي پردازد. در واقع اگر در محيط مرورگر (صفحه وب) قبلا توسط طراح فلش, تابع مناسبي تعبيه شده باشد (كه به آن تابع catcher مي گويند), در اين صورت مرورگر به محض دريافت فرمان FSCommand با آ‎رگومان هاي مشخص, در مي يابد كه بايد تابع catcher را اجرا كند. بدين ترتيب ارتباط يك طرفه بين محيط فلش و مرورگر با استفاده از اين پروتكل قراردادي, برقرار مي شود. به ياد داشته باشيد كه تابع يا اصطلاحا دستور FSCommand داراي دو پارامتر است كه به اولي پارامتر Command و به دومي پارامتر Argument نام نهاده اند. محيط اجرا كننده دستور FSCommand, اين دو پارامتر را به محيط ميزبان كه در اينجا جاوا اسكريپت است, انتقال مي دهد.

در قطعه كد 1, چنين فرايندي تشريح شده است. در اين قطعه كد, دستور FSCommand, يك تابع جاوا اسكريپت alert را در محيط ميزبان (مرورگر) فراخواني مي كند (تابع alert در جاوا اسكريپت, معادل تابع messagebox در زبان هاي ديگر است). پارامترهاي فراوان FSCommand در مثال يك, به ترتيب عبارتند از, و اين حالت در دنياي واقعي, به شكل زير به به كار برده مي شود: FSCommand ("call-alert", "Hello World")
همان طور كه قبلا يادآور شديم, پياده سازي دستور FSCommand در مرورگرهاي IE و Netscape با يكديگر تفاوت دارند. در شكل يك, چگونگي انتقال دستور از فلش به جاوا اسكريپت در هر دو مرورگر نمايش داده شده است.
در اين مرحله مناسب است كه بر اساس آنچه تا كنون بيان شد, يك تمرين عملي بسازيم. براي اين كار مي توانيد مراحل زير را به صورت گام به گام انجام دهيد:

استفاده از دستور FSCommand در محيط فلش:

يك فايل جديد فلش ايجاد كنيد و در فاصله چند ثانيه بعد از فريم آغازي, يك keyframe ايجاد كنيد.
پنجره اكشن اسكريپت را براي keyframe ايجاد شده, باز كنيد.
از منوي Actions در اين پنجره, فرمان FSCommand را انتخاب نماييد. در اين مرحله بخش پارامترهاي اين پنجره, شامل دو ورودي متني خواهد بود. به طور معمول بايد در جاي پارامتر Command از نام تابع جاوا اسكريپت استفاده كنيد.
در جعبه متن Command عبارت "callalert" را قرار دهيد.
در جعبه متن arguments عبارت "Hell World" را وارد نماييد.

قرار دادن فيلم فلش در درون صفحه وب:

يك فايل HTML ايجاد كرده و از برچسب هاي object و embed براي جاي دادن فيلم فلش در اين صفحه وب, كمك بگيريد. براي اين كار, اطمينان حاصل نماييد كه نام فيلم فلش خود را با استفاده از ID در عبارت object و Name در برچسب Embed, به درستي بيان كرده باشيد. موفقيت اجراي دستور FS به طور كامل به نام گذاري يكسان فيلم فلش و اسامي ذكر شده در برچسب هاي صفحه وب, وابسته است. (اگر با مرورگر نت اسكيپ كار مي كنيد, فراموش نكنيد كه سوييچ swLiveConnect="true" را به كار بريد) پس از انجام اين مراحل, صفحه HTML شما بايد چيزي مشابه با قطعه كد شماره يك باشد.

اضافه كردن اسكريپت به صفحه وب:

در صورتي كه با مرورگر IE كار مي كنيد, مي توانيد از vbscript براي اين منظور استفاده كنيد. اگر از قطعه كد يك به ياد داشته باشيد, مي دانيد كه مرورگر IE از قطعه كوچكي كد vbscript براي دريافت كردن دستور FSCommand و ارسال آن به جاوا اسكريپت, استفاده مي كند. در اين مرحله, اين بخش از كار را انجام مي دهيم. براي اين منظور, مي توانيد قطعه كد 2 را در بخش Head صفحه وب قرار دهيد. توجه داشته باشيد كه عبارت testMovie را به نام فايل فلش خود تغيير دهيد. يعني همان نامي كه در برچسب هاي object و embed به كار برده ايد.

اضافه كردن كد جاوا اسكريپت براي دريافت كردن دستور FSCommand

تا اينجا, فيلمي ساخته ايم و در درون صفحه وب قرار داده ايم كه فرمان FSCommand مشخصي را به محيط مرورگر ارسال مي كند. حالا بايد تابع جاوا اسكريپتي بنويسيم كه فرمان FS را دريافت يا اصطلاحا "catch" كند. براي اين كار مي توانيد قطعه كد 3 را در بخش Head صفحه وب قرار دهيد. تاكيد مي كنيم كه نام testMovie را به نام فيلم خود تغيير دهيد.

شرح ماجرا

در قطعه كد 3, تابع testMovieDoFSCommand هر بار كه فيلم testmovie فرمان FS را ارسال كند, يك بار اجرا خواهد شد. كليد واژه DoFSCommand, كليد واژه اي است كه از طرف فلش براي مشخص كردن توابعي كه از طريق فرمان FSCommand فراخواني مي شوند, به كار مي رود. پيشوند testmovie بيانگر فيلمي است كه فرمان FS را ارسال مي كند. بدين ترتيب تابعي كه مثلا foomovieDoFSCommand نام داشته باشد, زماني اجرا خواهد گرديد كه فيلمي به نام foomovie فرمان FS را ارسال كند. موضوع ديگر, پارانترهاي دوگانه command و args هستند. همان طور كه قبلا گفته شد, اين دو پارامتر, مقاديري هستند كه به تابع مقصد ارسال يا انتقال داده مي شوند.

چگونه جاوا اسكريپت با فلش صحبت مي كند

در كاربردهاي واقعي, مواردي را مي توان يافت كه در آن ها نياز به ارسال فرمان يا مقداري, از محيط ميزباني مانند مرورگر به فيلم فلش خواهيم داشت. به طور معمول, مي توان با فراخواني متد هاي ويژه اي از جاوا اسكريپت, فرمان هايي را به فلش ارسال كرد. فراخواني متد هاي فلش, دقيقا همانند تمام فراخواني هاي متد هاي دروني جاوا اسكريپت است, مثلا document.write() يا .window.close() از نگاه يك برنامه نويس, چنين ارتباطي, روشي يك طرفه محسوب مي شود. در اين روش ها, متد هاي جاوا اسكريپت, يك فيلم فلش را كنترل مي كنند و نيازي به هيچ ترفند ويژه اي در سمت مقابل (در فيلم فلش) ندارد.
در اينجا براي درك بهتر موضوع از يك مثال ساده براي كنترل كردن يك فيلم فلش توسط جاوا اسكريپت, استفاده مي كنيم. براي ساختن چنين مثالي به ترتيب زير عمل كنيد:
فيلم فلش مورد نظر خود را در درون يك صفحه وب embed كنيد. براي اين كار دقيقا همانند مثال قبلي عمل كنيد وباز هم يادآوري مي كنيم كه نام گذاري فيلم را به صورت صحيح در بر چسب هاي object و embed رعايت نماييد.

اضافه كردن تابعي براي اشاره به شي فيلم

توجه داشته باشيد كه توابع جاوا اسكريپت براي فراخواني فلش, از دو بخش عمده تشكيل مي شوند. نخست, تابعي كه متد شي فلش را فراخواني مي كند و بخش دوم, تابعي است كه syntax صحيح براي اشاره به شي فلش را بر مي گرداند. البته بخش دوم, كاملا وابسته به مرورگر مورد استفاده است. البته مي توان شكل syntax صحيح را به صورت مستقيم (hard code) در درون تابع نخست به كار برد, اما به دلايل رعايت اصول برنامه نويسي, در اينجا ترجيح داده ايم كه چنين نكنيم. قطعه كد شماره 4, اين اسكريپت را نشان مي دهد.
در اسكريپت شماره 4, مقدار متغير moviename را به نام فيلم فلش خود, تغيير دهيد. پس از اين مرحله, يعني زماني كه خيالمان از بابت نوع مرورگر و رسم الخط نوشتاري توابع, راحت شد, نوبت مي رسد به بخش اصلي, يعني همان تابعي كه متد فلش را فراخواني مي كند. براي اين كار مي توانيم به صورت زير عمل كنيم:
Function Playmovie() {
thisMovie(movieName).Play();
}
بدين ترتيب بدون نگراني از بابت نوع مرورگر, خواهيم توانست, متد فلش مورد نظر خود را فراخواني نماييم.
اما مي دانيم كه هميشه مسائل ظريفي در كار ايجاد مي شوند كه باعث ايجاد تفاوت تئوري با آنچه در عمل رخ مي دهد, مي شوند (البته حقيقت مطلب آن است كه همواره تئوري هاي ضعيف با عمل تفاوت دارند و در صورتيكه تئوري به اندازه كافي مستحكم باشد, اساسا تفاوتي بين تئوري و عمل وجود نخواهد داشت). بگذريم, آنچه كه در اينجا بايد دقت شود, آن است كه در كاربردهاي اينترنتي, بايد به زمان هاي بارگذاري اشيا توجه داشته باشيم. مثلا ممكن است كه شما قصد ارسال دستوري به فيلم فلش داشته باشيد, اما در زمان انجام توابع اين كار, هنوز شي فلش به طور كامل در صفحه وب بارگذاري نشده باشد. براي بررسي اين قبيل موارد, مي توان از روش هاي متفاوتي كمك گرفت. به عنوان مثال, مي توانيد از متد percentLoaded فلش براي اين منظور بهره گرفت.
براي آنكه مثال خود را كامل كرده باشيم, يك گام ديگر را نيز به مجموعه عملياتي كه تا كنون طي كرده ايم, اضافه مي كنيم. همان طور كه در عمل هم هميشه چنين است, در اينجا سعي مي كنيم تا رويدادي در صفحه وب بسازيم كه وقوع آن منجر به فراخواني متد فلش شود. يكي از بهترين انتخاب هايي كه مي توانيم در اينجا انجام دهيم, آن است كه كليدي به صفحه وب بيفزاييم كه كليك كردن آن, متد شي فلش را فراخواني كند. براي اين كار از اسكريپت شماره 5 استفاده مي كنيم.
پس در اينجا با روش صحيح اجراي يك دستور جاوا اسكريپت بر روي يك شي فلش آشنا شديم. شما مي توانيد از روش ها و تكنيك هاي مشابهي براي فراخواني هر متد جاوا اسكريپتي كه توسط نرم افزار Flash Player پشتيباني مي شود, استفاده كنيد.

 

نسخه قابل چاپ              برگشت

عناوين مرتبط
1- Adobe و وعده Flash سريعتر چهارشنبه,27 بهمن 1388
2- حافظه Flash شنبه,13 آبان 1383
3- Flash Memory به چاقوهاي ارتش سويس افزوده مي‌شود یک شنبه,5 فروردين 1383
4- برنامه Flash Favorite 1.31.15 سه شنبه,5 شهريور 1383
5- دانلود FlashBoot.v1.3.0.124 یک شنبه,25 مرداد 1384
6- ويروسي براي Flash Movies ها سه شنبه,24 مهر 1383
7- دانلود Flash ScreenSaver Master v2.10 جمعه,7 بهمن 1383
8- ذخیره ی فایلهای فلش از اینترنت توسط Flash Capture 1.55 سه شنبه,1 اسفند 1384
9- آشنايي با Actionscript در Flash یک شنبه,26 خرداد 1383
10- نبرد مایکروسافت با Flash در سال 2008 پنج شنبه,12 دي 1386
11- دان لود نرم افزار PowerPoint to Flash شنبه,26 مرداد 1383
12- نوکیا و اپرا پشتیبانان Adobe Flash ولی اپل...؟ پنج شنبه,9 خرداد 1389
13- كار با اصوات در Flash MX یک شنبه,26 خرداد 1383
14- FlashGet 1.84.1001 مديريت دانلودهاي شما سه شنبه,2 خرداد 1386
15- دانلود Selteco Flash Designer 5.0.20.7 شنبه,15 شهريور 1384
16- مدیریت و کنترل فایلهای فلش توسط نرم افزار Flash Admin 1.0 شنبه,19 مهر 1384
17- دانلود برنامه Flashget v1.65 full جمعه,15 شهريور 1383
18- آموزش ساخت يك شبيه ساز گفتار با Flash MX شنبه,9 دي 1383
19- نمايشگر رسانه اي Flash موجب نگراني طرفداران حريم خصوصي شده است جمعه,28 فروردين 1384
20- روش استفاده از متون در Flash MX سه شنبه,4 تير 1383
21- FlashDrive ،Kanguru چهار گیگابایتی می سازد پنج شنبه,25 مرداد 1383
22- ارسال متغيرها از ASP به Flash یک شنبه,7 تير 1384
23- Flash Album Creator v1.5 شنبه,18 دي 1383
24- FlashGet 1.8.6 پنج شنبه,2 تير 1386



نظرات كاربران



با قراردادن كد ذيل مي‌توانيد از سيستم نمايشگار اخبار ما بصورت رايگان در سايت/وبلاگ خود استفاده كنيد
 

معرفي شبكه فن آوري اطلاعات ايران به يك دوست

ايميل شما:
ايميل دوستتان:

تبـليغــات

تبليغات داخلي ...


حاميان ما ...


نقل اخبار/اطلاعات ساير سايتها/پايگاه‌ها لزوما به معناي تائيد آنها نيست، بلكه مسئوليت تمامي مطالب ارسالي به عهده پايگاه‌هاي مربوطه مي‌باشد
نقل مطالب سايت با ذکر منبع (www.IRITN.com) و نام نويسنده مجاز است.
All rights reserved. Copyright 2003-2010 by KEYANA IT Co.  Computed in 0.10 seconds
(Best Viewed With IE 6.0 or higher (1024x768