خانه » مالتی مدیا » ادوبی ایر » برقراری ارتباط بین Air و Web Service

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

در این مطلب نحوه اتصال به یک Web Service و دریافت اطلاعات آن توسط برنامه Air آموزش داده می‌شود. برای این کار از کلاسه‌های Flex در پروژه Flash استفاده خواهد شد. برای مثال در این درس درجه حرارت سلسیوس را به کمک Web Service به درجه فارنهایت تبدیل می‌کنیم.

دانلود سورس : source.zip

1- برنامه Flash را اجرا کنید و یک پروژه از نوع Air بسازید.

۲- از منوی File گزینه ActionScript Settings را انتخاب کنید.

۳- وارد بخش Library Path شوید و روی دکمه Browse To Path کلیک کنید.

۴- حالا پوشه 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 قرار دهید.

۶- روی OK کلیک کنید تا کلاسه Flex در پروژه تعریف شود.

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

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

۹- حالا روی فریم اول کلیک کنید و پنل 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 برای دکمه تعریف می‌کنیم.

startButton.addEventListener(MouseEvent.CLICK, SetupWebService);

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:

  • خطای به وجود آمده در فرایند ارسال و دریافت اطلاعات نمایش داده می‌شود.
Print Friendly, PDF & Email
تگ ها :
پیوند مطلب قبلی
پیوند مطلب بعدی

درباره بهروز پولادرگ

متولد : ۵ مرداد سال ۱۳۶۷ ، حرفه : ادوبی فلش ، برنامه نویسی و طراحی وب ، طراحی گرافیک ، مالتی مدیا ، نرم افزار های تحت وب

6 نظر

  1. سلام و وقتتون بخیر باش آقای پولادرگ من یک سایت دارم و کاربران من می تونند با زدن یوزر و پسور از امکانات سایت استفاده کنند حالا می خواستم بدونم آیا امکانش هست که با فلش نرم افزاری بنویسم برای موبایل که کابران بتونند از سایتم با او نرم افزار به سایتم کانت بشند و از امکانت سایت بهره مند بشوند ممنون میشم اگه راهنماییم کنید و بهم بگید چه کتابی یا بحثی رو باید دنبال کنم

    • سلام دوست عزیز
      شما می بایست کار با Air for Android و Air for IOS را بیاموزید که کد نویسی آن توسط همان زبان اکشن اسکریپت انجام می شود البته شما نیاز به اطلاعاتی در مورد برنامه نویسی سمت سرور هم دارید تا بخش های مربوطه به فلش و ارتباط آن را با سمت سرور نیز پیاده سازی نمایید
      موفق و پیروز باشید

  2. راستی چند نکته در مورد سورس بالا باید نوشته شود
    ۱.دکمه ای startButton باید در قسمت actionscript تعریف شود : var startButton:fl.controls.Button
    2. تکست اینپوت f &c نیز باید تعریف شوند :
    var f:fl.controls.TextInput
    var c:fl.controls.TextInput

  3. سلام دوست عزیز. من هم به دنبال ساخت اپلیکیشنی مشابه اون چه mahmood عزیز فرمودن هستم . وب رو زیر و رو کردم ولی یک چیز کامل پیدا نکردم. عمده مشکل من در اتصال به یک بانک اطلاعاتی MYSQL روی وب هست. اگه میشه با یک مثال یک آموزش ایجاد کنید. می دونم که خیلی های دیگه هم دنبالش هستند.امیدوارم این اتفاق بیفته.

    • سلام دوست عزیز
      اتصال به برنامه های سمت سرور مباحث گسترده و طولانی دارد که انشاالله در یکی از دو مجموعه آموزشی که در آینده آماده خواهد شد به این مطالب خواهم پرداخت
      موفق و پیروز باشید.

ارسال جواب

آدرس رایانامه شما منتشر نخواهد شد.فیلد های اجباری علامت گزاری شده اند *

*

رفتن به بالای صفحه