SlideShare a Scribd company logo
Використання метатеґів у розробці  RIA- застосунків за допомогою  Flex Роман  {nouba}  Шупер,  The Midnight Coders http:// noubase.com спеціально дла  8- ої зустрічі  UAFPUG  в Миколаєві (20.12.2008) Рівень слухачів:  середній  -  експерт Галузь:   Adobe Flex
Спробуємо дати собі відповіді на наступні запитання: Що таке метатеґи? Для чого вони? Як їх застосовувати? Які види метатеґів бувають? Для чого кожен з них служить? Коли і як варто їх застосовувати? Про що я забув сказати або не знав?
1.  Що таке метатеґи? Метатеґ  – спеціальна конструкція, чітко визначеного формату, яка дає змогу додати певні дані до загального коду програми чи структурувати їх, а також вносити зміни в поведінку компілятора  чи доповнювати її потрібними нам директивами.  Узагальнене визначення:
[Event(name="myClickEvent", type="flash.events.Event")]   1.  Що таке метатеґи? Структура: [ … ]   –  Тіло метатеґа Event  –  Тип метатеґа (…)   –  Перелік всіх полів метатеґа type  –  Поле метатеґа "myClickEvent"   –  Значення поля метатега
2 .  Для чого вони? Для зручності [Event], [Style], [ArrayElementType], [Effect] … Для спеціальних можливостей [Bindable], [RemoteClass], [Embed], [IconFile] … Для структуризації [Exclude], [ExcludeClass], [Deprecated] …
3 .  Як їх застосовувати? В  ActionScript 3 :
3 .  Як їх застосовувати? В  MXML : Всередині теґа  <mx:Metadata>
[ ArrayElementType ]   [Bindable]   [ DefaultProperty ]   [ Deprecated ]   [Effect]   [Embed]   [ Event ]   [ Exclude ]   09.  [ ExcludeClass ]   10.  [IconFile]  11.  [ Inspectable ]   12.  [InstanceType]  13.  [NonCommittingChangeEvent]  14.  [ RemoteClass ]   15.  [ Style ]  16.  [ Transient ]   4 .  Які види метатеґів бувають?  Список і ті,  які ми розглянемо далі: Документовані
4 .  Які види метатеґів бувають?  Список і ті,  які ми розглянемо далі: 17.  [ Mixin ]   18.  [ MaxChildren ]   19.  [ PercentProxy ]   20.  [ SWF ]   21 .   [AccessibilityClass]   22.   [ChangeEvent]   23.  [ CollapseWhiteSpace ]   24.  [ Frame ] 25. … НЕ документовані
[ArrayElementType] Працює тільки в  MXML Вказує на допустимий тип елементів масива Мінуси : Плюси: Структурує типи Позбавляє від малопомітних і каверзних помилок з типами Розвінчуємо міфи : Не є аналогом типізованого масива чи  Vector’a  в А ctionScript  3  FP10. Не додає жодного прискорення в роботі
[ArrayElementType] ActionSctipt3 Class (Fragment) Вказувати повністю з пакетом, за винятком примітивів!
[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
[DefaultProperty] Визначає властивість, по замовчуванню, для класа package  mx.collections { [ DefaultProperty ( &quot;source&quot; )] public   class  ArrayCollection …. public   function   set  source(s:Array): void { list =  new  ArrayList(s); }
[DefaultProperty]
[DefaultProperty]
[Inspectable]
[Inspectable] Як це виглядає в коді Увага! Не використовуйте одинарні лапки в описі полів метатеґа! По не зрозумілим причинам метатеґ перестає працювати
[Inspectable] Детальніше про поля метатеґа category Визначає до якої групи належатиме ця властивість в  Property Inspector’i  Flex Builder’a . Дефолна категорія – “ Other ” .
[Inspectable] Детальніше про поля метатеґа enumeration Це перелік усіх можливих валідних значень для цієї властивості .  Сортується завжди за алфавітом. Наприклад: enumeration= “ UAFPUG, BAFPUG, RAFPUG ”   перетвориться в наступний список
[Inspectable] Детальніше про поля метатеґа environment defaultValue format listOffset name type variable verbose Ще 8 полів у метатеґа  Inspectable , які, нажаль, не мають жодного змісту для  Flex- розробника. Усі всі вони використовуються для  Flash -компонент, але це вже тема для іншої доповіді   .
“ Кривий” і не зручний парсер значення поля  name. Відсутність перевірки правильності вказаного класа в полі  type   в момент компіляції (в  Flex Builder’i , а в  IntelliJ IDEA  8  -  працює)  [Event] Служить для декларації подій які можуть виникнути в компоненті Мінуси : Плюси: Пришвидшує підписку на події. Структурує інформацію про всі можливі події в класі
[Event] В дії ( MXML ):
[Event] В дії ( ActionScript 3 ):
В коді:   [Event] Прописуємо метатеґ в нашому класі. В полі  type  вказує клас повністю з пакетом  Створюємо наш власний клас події і добавляємо константу:  Зрозуміло, що значення константи  TEST_EVENT  і поля  name  повинні співпадати
Між маленькою і великою буквою, або двома великими буквами буде вставлено знак  “_” Усі літери між знаками  “_”  буде піднято в верхні регістр  [Event] 2 правила парсера:  “ testEvent ”  ->   TEST_EVENT “ TestEvent ”  ->   _TEST_EVENT “ TEstEvent ”  ->   _T_EST_EVENT
[Event] Увага! Це погана практика.   Якщо, дуже не хочеться створювати окремий клас події.
[Style] Декларує властивість стиля, а також поведінку цієї властивості та її ознаки.  Приклади з  Flex framework’a : Усі поля метатеґа name type arrayType 4. format 5. enumeration 6. inherit 7. states
[Style] name Визначає як буде відображатись дана властивість в списку
[Style] enumeration Перелічує усі валідні значення для даної властивості
inherit [Style] Вказує на те чи будуть усі потомки компонента наслідувати цю властивість від нього чи ні
inherit [Style] Червоний  <mx:Canvas>  не унаслідував суцільну зелену рамку від свого батьківського контейнера
inherit [Style] Як бачимо  <mx:Label>  унаслідував червоний колір тексту від батьківської  <mx:Panel>
type [Style] Визначає який тип готова прийняти ця властивість Абсолютно очікувано, отримуємо помилку
[Style] arrayType Нажаль, на даному етапі розвитку  Flex Builder  ніяк не реагує на порушення типу даних, але все-таки рекомендую використовувати це поле. Можливо колись вони це поправлять.
format [Style] Має зміст лише для компонентів розроблених для  Flash.  Знову ж таки це уже тема для іншої доповіді. states Вказує на те, що при розробці класу, який буде використаний для скінування ви можете використовувати стейти   з відповідними іменами.
[PercentProxy] В дії на прикладі  mx.core.UIComponent: Передає параметр в іншу сеттер-функцію, попередньо вирізавши знак процентів
Працює виключно всередині  MXML  теґів [ CollapseWhiteSpace ] Мінуси : Плюси: Деколи робить за нас нашу роботу ;)
[ CollapseWhiteSpace ]
[ CollapseWhiteSpace ]
[ Mixin ] Викликає  статичний  метод  init ()   ще до конструктора.
[ Mixin ] Хто вгадає який буде  output?
[ MaxChildren ] Жодної корисної дії від цього метатеґа не виявлено хоч його і було виявлено в 3 класах  Flex Framework’a, a  саме: mx.controls.ButtonBar mx.controls.LinkBar mx.controls.TabBar Якщо хтось все-таки знайде користь в цьому чудному метатезі – негайно сповістіть мене  
[ RemoteClass ] Слугує для зв’язування пари класів які повинні мапитись між собою   при використанні  ORB  технологій.  ActionScript 3 Class Alias  вказується з повним ім’ям включно з пакетом
[ RemoteClass ] Java Class При серіалізації та десереалізації усі поля і методи будуть правильно розпізнані рефлектором
[ Transient ] Слугує для того щоб управляти списком полів та методів які підпадуть під серіалізацію в  AMF  пакет на стороні  Flash- плеєра Поле  sum  може надалі використовуватись на стороні клієнта і воно ніколи не буде серіалізовано і передано на сервер.
[ ExcludeClass ] Ховає клас від  intellisense ’a   Flex Builder ’а .  Тим не менше, Ви можете спокійного імпортувати й використовувати його. Використовується розробниками  Flex framework’a , швидше за все, для внутрішніх цілей, або для тих класів які ще не до кінця відтестовані і не випущені .
[ Exclude ] Дає змогу приховати частину  API ,   яку клас унаслідував від свого суперкласа VBox  ховає властивість  direction ,  яку він унаслідував від  Box,  адже вона уже немає жодного логічного значення
[ Exclude ] [ Exclude (name=&quot; direction &quot;, kind=&quot; property &quot;)] [ Exclude (name=&quot; setFocus &quot;, kind=&quot; method &quot;)] [ Exclude (name=&quot; focusIn &quot;, kind=&quot; event &quot;)]  [ Exclude (name=&quot; horizontalGap &quot;, kind=&quot; style &quot;)] [ Exclude (name=&quot; focusInEffect &quot;, kind=&quot; effect &quot;)]   Цим метатеґом також можна приховати дію інших метатеґів, таких як :   [Style] ,  [Event]   та  [Effect] , як показано нижче
[ Deprecated ] Дуже важливий метатеґ для тих хто розробляє власні бібліотеки і підтримує їх, випускаючи нові версії. Використовуйте цей метатеґ на усі методах і властивостях, які являються застарілими для нової версії бібліотеки і мають новий покращений аналог або просто стали непотрібні
[ Deprecated ] При подальшому використанні застарілого метода розробник буде попереджений як значком  Так і повідомленням яке ви йому там напишете
[ Deprecated ] Якщо розробник й надалі ігноруватиме наші попередження, то  Flex Builder  буде постійно нагадувати йому в панельці  Problems   про використання забороненого метода Уже під час виконання жодних помилок не виникає
[ SWF ] Цей метатеґ не несе жодної користі  Flex -розробникам, але часто використовується в чистих  ActionScript 3  проектах. За його допомогою ми сконфігурувати деякі параметри кінцевого  .swf  документа width  –  ширину нашого застосунка height  –  висоту нашого застосунка frameRate  –  частоту кадрів backgroundColor  –  та колір тла  Що ще треба для щастя?
6 .  Коли і як варто їх застосовувати? Метатеґи потрібно використовувати побільше й почастіше
Усім дякую за увагу. Запитання?

More Related Content

PPTX
Advanced c sharp part 3
PPT
PPTX
12 Architecture
PPTX
Angular. presentation
PPS
青藏铁路
PPTX
About Mad Dogg Athletics, Inc.
PPT
Fdi Powerpoint
PPTX
About Spinning, Peak Pilates, Bodyblade, Resist-A-Ball, CrossCore and Kett…
Advanced c sharp part 3
12 Architecture
Angular. presentation
青藏铁路
About Mad Dogg Athletics, Inc.
Fdi Powerpoint
About Spinning, Peak Pilates, Bodyblade, Resist-A-Ball, CrossCore and Kett…

Viewers also liked (18)

PPT
Revenue-Generating Best Practices & Lessons Learned Atic Public Meeting Rev1 ...
PPT
Innovative Approaches To Recognition Dec 2008
PDF
MANTENIMIENTO BÁSICO DE EQUIPOS A CARGO DE OPERADORES
PPS
Corporate Company Profile
PPS
Value Meetings Promo
PPS
Value Time
DOC
Small For Gestational Age
PPTX
И ушли за солдатом – солдат…
PPT
13 primavara
PDF
Doktorska disertacija Dragana D. Jovanovic 250916
DOCX
Silabus mata sma
PPTX
Slider korban
PPT
Одбрана доктората 240916
DOCX
Diario de doble entrada de ana antonia estrella morel para entregar
PDF
Legacy Casero Brochure - Zricks.com
PPTX
Slider korban
PDF
Fires - Full - Annie
PDF
IDENTIFICAZIONE STRUTTURALE DEL COMPORTAMENTO SPERIMENTALE DI CENTINE INNOVAT...
Revenue-Generating Best Practices & Lessons Learned Atic Public Meeting Rev1 ...
Innovative Approaches To Recognition Dec 2008
MANTENIMIENTO BÁSICO DE EQUIPOS A CARGO DE OPERADORES
Corporate Company Profile
Value Meetings Promo
Value Time
Small For Gestational Age
И ушли за солдатом – солдат…
13 primavara
Doktorska disertacija Dragana D. Jovanovic 250916
Silabus mata sma
Slider korban
Одбрана доктората 240916
Diario de doble entrada de ana antonia estrella morel para entregar
Legacy Casero Brochure - Zricks.com
Slider korban
Fires - Full - Annie
IDENTIFICAZIONE STRUTTURALE DEL COMPORTAMENTO SPERIMENTALE DI CENTINE INNOVAT...
Ad

Similar to Using Metatags in Flex Developing (20)

PDF
лаб. роб. №2 обєкти та сервіси що ними надаються
PPTX
ASP.NET Core лекція 02.pptx
PPTX
PPT
V24 com to_net
PPTX
cpp-2013 #20 Best practices
PDF
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
PDF
iPhone Objective-C Development (ukr) (2009)
PPT
08 Templates
PPTX
230симист мтмтмвпа ввпарп иапапа236.pptx
PPT
Caliburn Micro Overview
PPTX
Net framework і c# module 17
PPTX
ASP.Net basics
PPTX
Net framework і c# module 17
PPTX
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
PPTX
Net framework and C# module 17. Serialization
PPT
Flex 4 чи Html 5
PPT
Uml+Patterns2
PPTX
Lecture 11 for distance courses "Fundamentals of Informatics"
PPTX
Net framework і c# module 10
PPT
07 Containers
лаб. роб. №2 обєкти та сервіси що ними надаються
ASP.NET Core лекція 02.pptx
V24 com to_net
cpp-2013 #20 Best practices
Joomla 3. Що нового для розробників у новій версії - Віталій Маренков
iPhone Objective-C Development (ukr) (2009)
08 Templates
230симист мтмтмвпа ввпарп иапапа236.pptx
Caliburn Micro Overview
Net framework і c# module 17
ASP.Net basics
Net framework і c# module 17
"Distributed graphs and microservices in Prom.ua", Maksym Kindritskyi
Net framework and C# module 17. Serialization
Flex 4 чи Html 5
Uml+Patterns2
Lecture 11 for distance courses "Fundamentals of Informatics"
Net framework і c# module 10
07 Containers
Ad

Using Metatags in Flex Developing

  • 1. Використання метатеґів у розробці RIA- застосунків за допомогою Flex Роман {nouba} Шупер, The Midnight Coders http:// noubase.com спеціально дла 8- ої зустрічі UAFPUG в Миколаєві (20.12.2008) Рівень слухачів: середній - експерт Галузь: Adobe Flex
  • 2. Спробуємо дати собі відповіді на наступні запитання: Що таке метатеґи? Для чого вони? Як їх застосовувати? Які види метатеґів бувають? Для чого кожен з них служить? Коли і як варто їх застосовувати? Про що я забув сказати або не знав?
  • 3. 1. Що таке метатеґи? Метатеґ – спеціальна конструкція, чітко визначеного формату, яка дає змогу додати певні дані до загального коду програми чи структурувати їх, а також вносити зміни в поведінку компілятора чи доповнювати її потрібними нам директивами. Узагальнене визначення:
  • 4. [Event(name=&quot;myClickEvent&quot;, type=&quot;flash.events.Event&quot;)] 1. Що таке метатеґи? Структура: [ … ] – Тіло метатеґа Event – Тип метатеґа (…) – Перелік всіх полів метатеґа type – Поле метатеґа &quot;myClickEvent&quot; – Значення поля метатега
  • 5. 2 . Для чого вони? Для зручності [Event], [Style], [ArrayElementType], [Effect] … Для спеціальних можливостей [Bindable], [RemoteClass], [Embed], [IconFile] … Для структуризації [Exclude], [ExcludeClass], [Deprecated] …
  • 6. 3 . Як їх застосовувати? В ActionScript 3 :
  • 7. 3 . Як їх застосовувати? В MXML : Всередині теґа <mx:Metadata>
  • 8. [ ArrayElementType ] [Bindable] [ DefaultProperty ] [ Deprecated ] [Effect] [Embed] [ Event ] [ Exclude ] 09. [ ExcludeClass ] 10. [IconFile] 11. [ Inspectable ] 12. [InstanceType] 13. [NonCommittingChangeEvent] 14. [ RemoteClass ] 15. [ Style ] 16. [ Transient ] 4 . Які види метатеґів бувають? Список і ті, які ми розглянемо далі: Документовані
  • 9. 4 . Які види метатеґів бувають? Список і ті, які ми розглянемо далі: 17. [ Mixin ] 18. [ MaxChildren ] 19. [ PercentProxy ] 20. [ SWF ] 21 . [AccessibilityClass] 22. [ChangeEvent] 23. [ CollapseWhiteSpace ] 24. [ Frame ] 25. … НЕ документовані
  • 10. [ArrayElementType] Працює тільки в MXML Вказує на допустимий тип елементів масива Мінуси : Плюси: Структурує типи Позбавляє від малопомітних і каверзних помилок з типами Розвінчуємо міфи : Не є аналогом типізованого масива чи Vector’a в А ctionScript 3 FP10. Не додає жодного прискорення в роботі
  • 11. [ArrayElementType] ActionSctipt3 Class (Fragment) Вказувати повністю з пакетом, за винятком примітивів!
  • 12. [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. [DefaultProperty] Визначає властивість, по замовчуванню, для класа package mx.collections { [ DefaultProperty ( &quot;source&quot; )] public class ArrayCollection …. public function set source(s:Array): void { list = new ArrayList(s); }
  • 17. [Inspectable] Як це виглядає в коді Увага! Не використовуйте одинарні лапки в описі полів метатеґа! По не зрозумілим причинам метатеґ перестає працювати
  • 18. [Inspectable] Детальніше про поля метатеґа category Визначає до якої групи належатиме ця властивість в Property Inspector’i Flex Builder’a . Дефолна категорія – “ Other ” .
  • 19. [Inspectable] Детальніше про поля метатеґа enumeration Це перелік усіх можливих валідних значень для цієї властивості . Сортується завжди за алфавітом. Наприклад: enumeration= “ UAFPUG, BAFPUG, RAFPUG ” перетвориться в наступний список
  • 20. [Inspectable] Детальніше про поля метатеґа environment defaultValue format listOffset name type variable verbose Ще 8 полів у метатеґа Inspectable , які, нажаль, не мають жодного змісту для Flex- розробника. Усі всі вони використовуються для Flash -компонент, але це вже тема для іншої доповіді  .
  • 21. “ Кривий” і не зручний парсер значення поля name. Відсутність перевірки правильності вказаного класа в полі type в момент компіляції (в Flex Builder’i , а в IntelliJ IDEA 8 - працює) [Event] Служить для декларації подій які можуть виникнути в компоненті Мінуси : Плюси: Пришвидшує підписку на події. Структурує інформацію про всі можливі події в класі
  • 22. [Event] В дії ( MXML ):
  • 23. [Event] В дії ( ActionScript 3 ):
  • 24. В коді: [Event] Прописуємо метатеґ в нашому класі. В полі type вказує клас повністю з пакетом Створюємо наш власний клас події і добавляємо константу: Зрозуміло, що значення константи TEST_EVENT і поля name повинні співпадати
  • 25. Між маленькою і великою буквою, або двома великими буквами буде вставлено знак “_” Усі літери між знаками “_” буде піднято в верхні регістр [Event] 2 правила парсера: “ testEvent ” -> TEST_EVENT “ TestEvent ” -> _TEST_EVENT “ TEstEvent ” -> _T_EST_EVENT
  • 26. [Event] Увага! Це погана практика. Якщо, дуже не хочеться створювати окремий клас події.
  • 27. [Style] Декларує властивість стиля, а також поведінку цієї властивості та її ознаки. Приклади з Flex framework’a : Усі поля метатеґа name type arrayType 4. format 5. enumeration 6. inherit 7. states
  • 28. [Style] name Визначає як буде відображатись дана властивість в списку
  • 29. [Style] enumeration Перелічує усі валідні значення для даної властивості
  • 30. inherit [Style] Вказує на те чи будуть усі потомки компонента наслідувати цю властивість від нього чи ні
  • 31. inherit [Style] Червоний <mx:Canvas> не унаслідував суцільну зелену рамку від свого батьківського контейнера
  • 32. inherit [Style] Як бачимо <mx:Label> унаслідував червоний колір тексту від батьківської <mx:Panel>
  • 33. type [Style] Визначає який тип готова прийняти ця властивість Абсолютно очікувано, отримуємо помилку
  • 34. [Style] arrayType Нажаль, на даному етапі розвитку Flex Builder ніяк не реагує на порушення типу даних, але все-таки рекомендую використовувати це поле. Можливо колись вони це поправлять.
  • 35. format [Style] Має зміст лише для компонентів розроблених для Flash. Знову ж таки це уже тема для іншої доповіді. states Вказує на те, що при розробці класу, який буде використаний для скінування ви можете використовувати стейти з відповідними іменами.
  • 36. [PercentProxy] В дії на прикладі mx.core.UIComponent: Передає параметр в іншу сеттер-функцію, попередньо вирізавши знак процентів
  • 37. Працює виключно всередині MXML теґів [ CollapseWhiteSpace ] Мінуси : Плюси: Деколи робить за нас нашу роботу ;)
  • 40. [ Mixin ] Викликає статичний метод init () ще до конструктора.
  • 41. [ Mixin ] Хто вгадає який буде output?
  • 42. [ MaxChildren ] Жодної корисної дії від цього метатеґа не виявлено хоч його і було виявлено в 3 класах Flex Framework’a, a саме: mx.controls.ButtonBar mx.controls.LinkBar mx.controls.TabBar Якщо хтось все-таки знайде користь в цьому чудному метатезі – негайно сповістіть мене 
  • 43. [ RemoteClass ] Слугує для зв’язування пари класів які повинні мапитись між собою при використанні ORB технологій. ActionScript 3 Class Alias вказується з повним ім’ям включно з пакетом
  • 44. [ RemoteClass ] Java Class При серіалізації та десереалізації усі поля і методи будуть правильно розпізнані рефлектором
  • 45. [ Transient ] Слугує для того щоб управляти списком полів та методів які підпадуть під серіалізацію в AMF пакет на стороні Flash- плеєра Поле sum може надалі використовуватись на стороні клієнта і воно ніколи не буде серіалізовано і передано на сервер.
  • 46. [ ExcludeClass ] Ховає клас від intellisense ’a Flex Builder ’а . Тим не менше, Ви можете спокійного імпортувати й використовувати його. Використовується розробниками Flex framework’a , швидше за все, для внутрішніх цілей, або для тих класів які ще не до кінця відтестовані і не випущені .
  • 47. [ Exclude ] Дає змогу приховати частину API , яку клас унаслідував від свого суперкласа VBox ховає властивість direction , яку він унаслідував від Box, адже вона уже немає жодного логічного значення
  • 48. [ Exclude ] [ Exclude (name=&quot; direction &quot;, kind=&quot; property &quot;)] [ Exclude (name=&quot; setFocus &quot;, kind=&quot; method &quot;)] [ Exclude (name=&quot; focusIn &quot;, kind=&quot; event &quot;)] [ Exclude (name=&quot; horizontalGap &quot;, kind=&quot; style &quot;)] [ Exclude (name=&quot; focusInEffect &quot;, kind=&quot; effect &quot;)]  Цим метатеґом також можна приховати дію інших метатеґів, таких як : [Style] , [Event] та [Effect] , як показано нижче
  • 49. [ Deprecated ] Дуже важливий метатеґ для тих хто розробляє власні бібліотеки і підтримує їх, випускаючи нові версії. Використовуйте цей метатеґ на усі методах і властивостях, які являються застарілими для нової версії бібліотеки і мають новий покращений аналог або просто стали непотрібні
  • 50. [ Deprecated ] При подальшому використанні застарілого метода розробник буде попереджений як значком Так і повідомленням яке ви йому там напишете
  • 51. [ Deprecated ] Якщо розробник й надалі ігноруватиме наші попередження, то Flex Builder буде постійно нагадувати йому в панельці Problems про використання забороненого метода Уже під час виконання жодних помилок не виникає
  • 52. [ SWF ] Цей метатеґ не несе жодної користі Flex -розробникам, але часто використовується в чистих ActionScript 3 проектах. За його допомогою ми сконфігурувати деякі параметри кінцевого .swf документа width – ширину нашого застосунка height – висоту нашого застосунка frameRate – частоту кадрів backgroundColor – та колір тла Що ще треба для щастя?
  • 53. 6 . Коли і як варто їх застосовувати? Метатеґи потрібно використовувати побільше й почастіше
  • 54. Усім дякую за увагу. Запитання?