Презентация на тему Використання метатеґів у розробці RIA-застосунків за допомогою Flex

Презентация на тему Використання метатеґів у розробці RIA-застосунків за допомогою Flex, предмет презентации: Образование. Этот материал содержит 54 слайдов. Красочные слайды и илюстрации помогут Вам заинтересовать свою аудиторию. Для просмотра воспользуйтесь проигрывателем, если материал оказался полезным для Вас - поделитесь им с друзьями с помощью социальных кнопок и добавьте наш сайт презентаций ThePresentation.ru в закладки!

Слайды и текст этой презентации

Слайд 1
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

Використання метатеґів у розробці RIA-застосунків за допомогою Flex

Роман {nouba} Шупер, The Midnight Coders
http://noubase.com

спеціально дла 8-ої зустрічі UAFPUG в Миколаєві (20.12.2008)

Рівень слухачів: середній - експерт

Галузь: Adobe Flex


Слайд 2
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

Спробуємо дати собі відповіді на наступні запитання:

Що таке метатеґи?
Для чого вони?
Як їх застосовувати?
Які види метатеґів бувають?
Для чого кожен з них служить?
Коли і як варто їх застосовувати?
Про що я забув сказати або не знав?


Слайд 3
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

1. Що таке метатеґи?

Метатеґ – спеціальна конструкція, чітко визначеного формату, яка дає змогу додати певні дані до загального коду програми чи структурувати їх, а також вносити зміни в поведінку компілятора чи доповнювати її потрібними нам директивами.

Узагальнене визначення:


Слайд 4
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event(name="myClickEvent", type="flash.events.Event")]

1. Що таке метатеґи?

Структура:

[…] – Тіло метатеґа
Event – Тип метатеґа
(…) – Перелік всіх полів метатеґа
type – Поле метатеґа
"myClickEvent" – Значення поля метатега


Слайд 5
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

2. Для чого вони?

Для зручності
[Event], [Style], [ArrayElementType], [Effect] …

Для спеціальних можливостей
[Bindable], [RemoteClass], [Embed], [IconFile] …

Для структуризації
[Exclude], [ExcludeClass], [Deprecated] …


Слайд 6
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

3. Як їх застосовувати?

В ActionScript 3:


Слайд 7
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

3. Як їх застосовувати?

В MXML:


Слайд 8
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

09. [ExcludeClass]
10. [IconFile]
11. [Inspectable]
12. [InstanceType]
13. [NonCommittingChangeEvent]
14. [RemoteClass]
15. [Style]
16. [Transient]

4. Які види метатеґів бувають?

Список і ті, які ми розглянемо далі:

[ArrayElementType]
[Bindable]
[DefaultProperty]
[Deprecated]
[Effect]
[Embed]
[Event]
[Exclude]


Слайд 9
Текст слайда:

Роман {nouba} Шупер, http://noubase.com


4. Які види метатеґів бувають?

Список і ті, які ми розглянемо далі:

17. [Mixin]
18. [MaxChildren]
19. [PercentProxy]
20. [SWF]
21. [AccessibilityClass]
22. [ChangeEvent]
23. [CollapseWhiteSpace]
24. [Frame]
25. …

НЕдокументовані


Слайд 10
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[ArrayElementType]

Працює тільки в MXML

Вказує на допустимий тип елементів масива

Мінуси:

Плюси:

Структурує типи
Позбавляє від малопомітних і каверзних помилок з типами

Розвінчуємо міфи:

Не є аналогом типізованого масива чи Vector’a в АctionScript 3 FP10.
Не додає жодного прискорення в роботі


Слайд 11
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[ArrayElementType]

ActionSctipt3 Class (Fragment)

Вказувати повністю з пакетом, за винятком примітивів!


Слайд 12
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[ArrayElementType]

MXML Layout (Fragment)

In initializer for 'testArray': type Number is not assignable to target type Array or target element type . ArrayElementType/src main.mxml line 8


Слайд 13
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[DefaultProperty]

Визначає властивість, по замовчуванню, для класа

package mx.collections
{

[DefaultProperty("source")] public class ArrayCollection ….

public function set source(s:Array):void
{
list = new ArrayList(s);
}


Слайд 14
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[DefaultProperty]


Слайд 15
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[DefaultProperty]


Слайд 16
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Inspectable]


Слайд 17
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Inspectable]

Як це виглядає в коді

Увага! Не використовуйте одинарні лапки в описі полів метатеґа! По не зрозумілим причинам метатеґ перестає працювати


Слайд 18
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Inspectable]

Детальніше про поля метатеґа

category

Визначає до якої групи належатиме ця властивість в Property Inspector’i Flex Builder’a.
Дефолна категорія – “Other”.


Слайд 19
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Inspectable]

Детальніше про поля метатеґа

enumeration

Це перелік усіх можливих валідних значень для цієї властивості. Сортується завжди за алфавітом.
Наприклад:
enumeration=“UAFPUG, BAFPUG, RAFPUG” перетвориться в наступний список


Слайд 20
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Inspectable]

Детальніше про поля метатеґа


environment
defaultValue
format
listOffset
name
type
variable
verbose

Ще 8 полів у метатеґа Inspectable,
які, нажаль, не мають жодного змісту для Flex-розробника. Усі всі вони використовуються для Flash-компонент, але це вже тема для іншої доповіді ☺.


Слайд 21
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event]

Служить для декларації подій які можуть виникнути в компоненті

“Кривий” і не зручний парсер значення поля name.
Відсутність перевірки правильності вказаного класа в полі type в момент компіляції (в Flex Builder’i, а в IntelliJ IDEA 8 - працює)

Мінуси:

Плюси:

Пришвидшує підписку на події.
Структурує інформацію про всі можливі події в класі


Слайд 22
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event]

В дії (MXML):


Слайд 23
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event]

В дії (ActionScript 3):


Слайд 24
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

В коді:

[Event]

Прописуємо метатеґ в нашому класі. В полі type вказує клас повністю з пакетом

Створюємо наш власний клас події і добавляємо константу:

Зрозуміло, що значення константи TEST_EVENT і поля name повинні співпадати


Слайд 25
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event]

2 правила парсера:

Між маленькою і великою буквою, або двома великими буквами буде вставлено знак “_”
Усі літери між знаками “_” буде піднято в верхні регістр

“testEvent” -> TEST_EVENT

“TestEvent” -> _TEST_EVENT

“TEstEvent” -> _T_EST_EVENT


Слайд 26
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Event]

Увага! Це погана практика. Якщо, дуже не хочеться створювати окремий клас події.


Слайд 27
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Style]

Декларує властивість стиля, а також поведінку цієї властивості та її ознаки.

Приклади з Flex framework’a:

Усі поля метатеґа



Слайд 28
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Style]

name



Визначає як буде відображатись дана властивість в списку


Слайд 29
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Style]

enumeration



Перелічує усі валідні значення для даної властивості


Слайд 30
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

inherit

[Style]

Вказує на те чи будуть усі потомки компонента наслідувати цю властивість від нього чи ні




Слайд 31
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

inherit

[Style]


Червоний не унаслідував суцільну зелену рамку від свого батьківського контейнера


Слайд 32
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

inherit

[Style]



Як бачимо унаслідував червоний колір тексту від батьківської


Слайд 33
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

type

[Style]

Визначає який тип готова прийняти ця властивість



Абсолютно очікувано, отримуємо помилку


Слайд 34
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Style]

arrayType


Нажаль, на даному етапі розвитку Flex Builder ніяк не реагує на порушення типу даних, але все-таки рекомендую використовувати це поле. Можливо колись вони це поправлять.


Слайд 35
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

format

[Style]

Має зміст лише для компонентів розроблених для Flash. Знову ж таки це уже тема для іншої доповіді.

states

Вказує на те, що при розробці класу, який буде використаний для скінування ви можете використовувати стейти з відповідними іменами.


Слайд 36
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[PercentProxy]

В дії на прикладі mx.core.UIComponent:

Передає параметр в іншу сеттер-функцію, попередньо вирізавши знак процентів


Слайд 37
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[CollapseWhiteSpace]

Працює виключно всередині MXML теґів

Мінуси:

Плюси:

Деколи робить за нас нашу роботу ;)


Слайд 38
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[CollapseWhiteSpace]



Слайд 39
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[CollapseWhiteSpace]


Слайд 40
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Mixin]

Викликає статичний метод init() ще до конструктора.





Слайд 41
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Mixin]

Хто вгадає який буде output?


Слайд 42
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[MaxChildren]

Жодної корисної дії від цього метатеґа не виявлено хоч його і було виявлено в 3 класах Flex Framework’a, a саме:

mx.controls.ButtonBar
mx.controls.LinkBar
mx.controls.TabBar

Якщо хтось все-таки знайде користь в цьому чудному метатезі – негайно сповістіть мене ☺


Слайд 43
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[RemoteClass]

Слугує для зв’язування пари класів які повинні мапитись між собою при використанні ORB технологій.

ActionScript 3 Class

Alias вказується з повним ім’ям включно з пакетом




Слайд 44
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[RemoteClass]

Java Class


При серіалізації та десереалізації усі поля і методи будуть правильно розпізнані рефлектором


Слайд 45
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Transient]


Слугує для того щоб управляти списком полів та методів які підпадуть під серіалізацію в AMF пакет на стороні Flash-плеєра


Поле sum може надалі використовуватись на стороні клієнта і воно ніколи не буде серіалізовано і передано на сервер.


Слайд 46
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[ExcludeClass]

Ховає клас від intellisense’a Flex Builder’а. Тим не менше, Ви можете спокійного імпортувати й використовувати його. Використовується розробниками Flex framework’a, швидше за все, для внутрішніх цілей, або для тих класів які ще не до кінця відтестовані і не випущені.


Слайд 47
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Exclude]

Дає змогу приховати частину API, яку клас унаслідував від свого суперкласа

VBox ховає властивість direction, яку він унаслідував від Box, адже вона уже немає жодного логічного значення


Слайд 48
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Exclude]

[Exclude(name="direction", kind="property")]
[Exclude(name="setFocus", kind="method")]
[Exclude(name="focusIn", kind="event")]

[Exclude(name="horizontalGap", kind="style")]
[Exclude(name="focusInEffect", kind="effect")] 

Цим метатеґом також можна приховати дію інших метатеґів, таких як: [Style], [Event] та [Effect], як показано нижче


Слайд 49
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Deprecated]

Дуже важливий метатеґ для тих хто розробляє власні бібліотеки і підтримує їх, випускаючи нові версії.

Використовуйте цей метатеґ на усі методах і властивостях, які являються застарілими для нової версії бібліотеки і мають новий покращений аналог або просто стали непотрібні


Слайд 50
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Deprecated]

При подальшому використанні застарілого метода розробник буде попереджений як значком

Так і повідомленням яке ви йому там напишете


Слайд 51
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[Deprecated]

Якщо розробник й надалі ігноруватиме наші попередження, то Flex Builder буде постійно нагадувати йому в панельці Problems про використання забороненого метода

Уже під час виконання жодних помилок не виникає


Слайд 52
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

[SWF]

Цей метатеґ не несе жодної користі Flex-розробникам, але часто використовується в чистих ActionScript 3 проектах. За його допомогою ми сконфігурувати деякі параметри кінцевого .swf документа

width – ширину нашого застосунка

height – висоту нашого застосунка

frameRate – частоту кадрів

backgroundColor – та колір тла

Що ще треба для щастя?


Слайд 53
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

6. Коли і як варто їх застосовувати?

Метатеґи потрібно використовувати побільше й почастіше


Слайд 54
Текст слайда:

Роман {nouba} Шупер, http://noubase.com

Усім дякую за увагу.
Запитання?


Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика