Простий приклад
Я не хочу писати про те, як встановити Flex Builder і як його конфігурувати. Причина не в моїй лінощі, причина в тому, що якщо це людині цікаво вона відкриє гугл і отримає тисячі посилань як це зробити. Також писати приклад використання якоїсь компоненти просто нудно - є TourDeFlex в якому докладно розказано як користуватися компонентами.
Мій колега, архітектор і провідний розробник у найбільшому проекті нашої компанії якось попросив мене подивитися матеріал, який він підготував для співбесіди претендента на посаду розробника. Це був код і питання полягало в наступному — поясни мені, будь ласка, що відбувається в коді і щоб ти змінив. Відповідь мала на увазі докладний аналіз і, якщо це необхідно, рефакторинг коду. Приклад наводити я не буду з двох причин - я не можу виносити конкретні приклади з моєї роботи і саме по собі завдання досить складне і має на увазі наявність не тільки знань Flex, а й загалом практики програмування. Але зараз згадавши це завдання я подумав що для людини яка тільки починає і якій це дійсно цікаво потрібна порада. Як і що зробити. Не шматок коду, а обговорення та з'ясування причин та наслідків.
Що далі? Після того, як я побачу робочий додаток, ми почнемо розбирати детально що написано. На першому етапі не засмічуйте голову - просто досягайте роботи. Підготуйте мінімальний набір для продовження розмови.
А ось це скріншот скомпільованого додатка. По секрету скажу - там багато підказок :)
І cааааама остання ремарка. Для людини, яка дуже добре знайома з флексом, попрошу спочатку зайняти крісло спостерігача. Код написано так, щоб можна було над ним попрацювати. Будь-які питання вітаються, але не факт щона будь-які питання ви отримаєте відповідь.
Так. забув дописати. Що робить цей приклад? Ви можете переглянути погоду для двох міст України — Київ та Харків)
Коментарі ( 23 )
Так. результат завжди .swf )
Запустити це і можна сказати що стать справи зроблено )
2. Створив Flex Project (index) і скопіпастил код 3. Натиснув Run На локальній машині запрацювало та показало:
4. Залив додаток на musikant.com.ua/programilla/flex/
На хості вантажиться, але не працює:
— загвоздка в тому, що на хості не працює як слід? - З підказки скріншотом помітив тільки різницю в швидкості вітру (там баг в коді?) — на хості нескінченно довго йде завантаження з віддаленого погодного хоста (там баг у коді?) — чи зовсім не туди потрапив?
Супер! Давай далі. Трохи буків.
Флекс просто клієнт і він ніколи не містить даних — дані забираються на якомусь сервері. Питання протоколів з якими працює флекс поки що залишимо. Давай просто вирішимо, що все працює через просте http з'єднання (ну як і браузер). Але тільки це рішення тимчасове)).
Тепер дивимось. Весь цикл виглядає приблизно так "послав запит - прийняв відповідь". Скільки може бути видів відповіді? Правильно – два. Результат та Помилка. Інших відповідей не може бути. Наше завдання написати два методи для обробки відповіді - resultHandler і faultHandler.
Тепер дивимось на код.
Ми в цьому коді створюємо об'єкт типу WebService з id weatherService. Поки що зверніть увагу лише на result=«resultHandler(event) та fault=»faultHandler(event). Ми говоримо таке. Якщо в процесі виклику методу на веб-сервісі відбудеться помилка (викинеться подія про помилку), то її повинен обробити метод faultHandler, у випадкурезультату – передати обробку результату методу resultHandler.
Що нам треба зробити з помилкою? Правильно. Обробити її. Помилки також називають винятками. Обробка винятків є одним із найважливіших навичок і насправді не настільки тривіальна, як це може здатися з першого погляду. Але в цьому прикладі ми обмежимося лише показом помилки. І все.
Дивимось наш метод. Я його навмисне залишив порожнім.
Це action script код. Метод та функція слова синоніми. Я кажуметодтільки через звичку. Як описати словами цей метод? Приблизно так: Це приватний(private)метод який нічого не поверне(void)і у вхідних параметрах отримує об'єктeкласу FaultEvent. Синтаксис action script, основи ООП читаємо через гугл. Це нудно та безглуздо описувати в рамках програміли. Будьте впевнені, що без базових знань ООП (і без розуміння цих знань) у вас нічого не вийде.