برقراری ارتباط بین Air و Web Service

شروع موضوع توسط yaa110 ‏27 آوریل 2011 در انجمن برنامه فلش Flash

کلمات کلیدی:
  1. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    507
    امتیاز دستاورد:
    16
    در این درس نحوه اتصال به یک Web Service و دریافت اطلاعات آن توسط برنامه Air آموزش داده می شود. برای این کار از کلاسه های Flex در پروژه Flash استفاده خواهد شد. برای مثال در این درس درجه حرارت سلسیوس را به کمک Web Service به درجه فارنهایت تبدیل می کنیم.
    ۱- برنامه Flash را اجرا کنید و یک پروژه از نوع Air بسازید.
    ۲- از منوی File گزینه ActionScript Settings را انتخاب کنید.
    ۳- وارد بخش Library Path شوید و روی دکمه Browse To Path کلیک کنید.


    [​IMG]


    ۴- حالا پوشه libs را با توجه به آدرس و نسخه نصب شده برنامه Adobe Flash Builder انتخاب کنید. برای مثال:


    کد (Text):
    (Install Path:)\Adobe\Adobe Flash Builder 4\sdks\4.0.0\frameworks\libs



    5- بعد از انتخاب این آدرس در پایین پنجره ActionScript Settings وضعیت Default linkage را روی Merged into code قرار دهید.


    [​IMG]


    ۶- روی OK کلیک کنید تا کلاسه Flex در پروژه تعریف شود.
    ۷- حالا از پنل Components و با استفاده از شاخه User Interface یک Button، دو Text Input و دو Label به داخل صفحه Drag کنید و یک فرم شبیه فرم زیر بسازید.


    [​IMG]


    ۸- در ادامه تنظیمات این Component ها را به صورت زیر تغییر دهید.


    [​IMG]
    [​IMG]


    ۹- حالا روی فریم اول کلیک کنید و پنل Actions را باز کنید.
    ۱۰- در ابتدا لازمه که کلاسه های مورد نیاز را Import کنید.
    کد (Text):
    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import mx.rpc.soap.*;
    import mx.rpc.events.*;



    11- حالا یک متغیر WebService ایجاد می کنیم.


    کد (Text):
    var webService:WebService;



    12- در این آموزش بعد از کلیک روی دکمه convert اطلاعات فیلد متنی درجه سلسیوس به Web Service فرستاده می شود و سپس اطلاعات دریافتی از Web Service در فیلد متنی درجه فارنهایت نشان داده می شود. پس یک Event Listener برای دکمه تعریف می کنیم.
    کد (Text):
    [/SIZE][SIZE=2]startButton.addEventListener(MouseEvent.CLICK, SetupWebService);[/SIZE]
    [SIZE=2]
    13- برای ادامه باید تابع SetupWebService را تعریف کنیم که بعد از کلیک روی دکمه convert فراخوانی می شود.
    کد (Text):

    function SetupWebService(event:MouseEvent):void
    {
    webService = new WebService();
    webService.loadWSDL(“http://www.w3schools.com/webservices/tempconvert.asmx?WSDL”);
    webService.addEventListener(LoadEvent.LOAD, BuildServiceRequest);
    }
    در این تابع:

    • لینک http://www.w3schools.com/webservices/tempconvert.asmx فراخوانی می شود. به جای این آدرس می توانید از هر آدرس دیگری استفاده کنید. دستور ?WSDL این آدرس را به صورت XML تعریف می کند تا در Flash قابل استفاده باشد.
    • بعد از Load شدن محتویات لینک با تعریف یک Event Listener برای webService تابع BuildServiceRequest فراخوانی می شود.
    کد (Text):
    function BuildServiceRequest(evt:LoadEvent) {
    webService.CelsiusToFahrenheit(c.text);
    webService.CelsiusToFahrenheit.addEventListener(ResultEvent .RESULT, onResult);
    webService.CelsiusToFahrenheit.addEventListener(FaultEvent. FAULT, onFault);
    }
    در این تابع:

    • اطلاعات فیلد متنی سلسیوس (c.text) به اپراتور CelsiusToFahrenheit که در لینک Web Service قابل مشاهده است، فرستاده می شود.
    • دو Event Listener برای webService تعریف شده است که اولی بعد از کامل شدن عملیات و دومی درصورت بروز خطا فراخوانی می شوند.
    کد (Text):
    function onResult(event:ResultEvent) {
    f.text = String(event.result);
    }
    function onFault(event:FaultEvent) {
    trace(“error”);
    trace(event.fault.getStackTrace());
    }
     
    در تابع onResult:

    • اطلاعات دریافتی از Web Service در فیلد متنی فارنهایت نمایش داده می شود.
    در تابع onFault:

    • خطای به وجود آمده در فرایند ارسال و دریافت اطلاعات نمایش داده می شود.
     
    نوشته شده توسط yaa110 در ‏27 آوریل 2011
    mohammad.sub7، Avang2005، armanbm و 4 نفر دیگر از این ارسال تشکر کرده اند.
  2. majid_a95

    majid_a95 Active Member

    ارسال‌ها:
    1,232
    تشکر شده:
    1,274
    امتیاز دستاورد:
    36
    سلام دوست عزیز
    ممنون بابت آموزش خوبتون
    امکانش هست فایل pdf آموزش رو آپ کنید ؟
    تشکر:rose:
     
    نوشته شده توسط majid_a95 در ‏27 آوریل 2011
  3. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    507
    امتیاز دستاورد:
    16
    سلام، متاسفانه هنوز فرصت نکردم فایل pdf را آماده کنم
     
    نوشته شده توسط yaa110 در ‏27 آوریل 2011
    majid_a95 از این پست تشکر کرده است.

به اشتراک بگذارید