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

yaa110

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


web1.jpg



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


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


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


web2.jpg



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


web3.jpg



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


web5.jpg

web6.jpg



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



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


کد:
var webService:WebService;



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

13- برای ادامه باید تابع SetupWebService را تعریف کنیم که بعد از کلیک روی دکمه convert فراخوانی می شود.
کد:
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 فراخوانی می شود.
کد:
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 تعریف شده است که اولی بعد از کامل شدن عملیات و دومی درصورت بروز خطا فراخوانی می شوند.
کد:
function onResult(event:ResultEvent) {
f.text = String(event.result);
}
function onFault(event:FaultEvent) {
trace(“error”);
trace(event.fault.getStackTrace());
}

در تابع onResult:

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

  • خطای به وجود آمده در فرایند ارسال و دریافت اطلاعات نمایش داده می شود.
 

majid_a95

Active Member
سلام دوست عزیز
ممنون بابت آموزش خوبتون
امکانش هست فایل pdf آموزش رو آپ کنید ؟
تشکر:rose:
 

جدیدترین ارسال ها

بالا