Путеводитель по документации Adobe Flex 4.6
Когда я понимаю, что какая-то технология приходит в мою жизнь надолго (а после 50 лет слово 'надолго' уже звучит как 'навсегда') - то мне хочется сделать общий обзор всей документации по технологии. Например в далеком 200-м году, когда я понял что такой нарыв как Билл Гейтс просто так не рассосется в иформационной индустрии - я сделал себе справочник по синтаксису Transact-SQL. И не ошибся - уже 12 лет я использую TSQL.
Десять лет назад, в 2002-м году у меня был болезненный процесс перехода от VB6 к VB.NET - мне тоже хотелось окинуть взором весь объем нового языка и я сделал себе обзор - Язык программирования VB.NET.
И вот, в 2012 годах, пришло время FLEX. В прошлом году я уже написал более 50-ти приложений на FLEX - я понял насколько это удачная платформа, насколько удачно она сочетается с Бейсиком. А в этом году подошло время полного изучения адобовского фреймворка и тонких ньюансов языка.
На этой страничке вы сможете увидеть мой путеводитель по возможностям FLEX - эту страничку вы можете использовать не только для программирования, но и для систематического изучения Flex (например для сдачи экзаменов).
Итак, в моей голове, все что имеет отношение к FLEX - делится на следующие разделы:
- Язык FLEX - операторы, глобальные константы, языковые конструкции.
- Метатеги <FX: - управление компиляцией FLEX-приложений.
- Теги <S: - декларации SPARK-компонентов.
- Теги <MX: - декларации Gumbo-компонентов.
- Обьекты FLEX, доступные для программного управления.
- Пространства имен верхнего уровня.
- Основные библиотеки виртуальной машины FLASH.
- Особенности AIR.
- Особенности работы в Eclipse (Adobe Flex Builder).
- Связь FLEX с FLASH Professional и другими адобовскими IDE.
- Примеры FLEX-приложений.
Что касается AIR - это особая имплементация Флекса, которая работает не в браузере, а на локальной машине - там есть специфика, например доступ к файловой системе. Обратите внимание, что AIR-приложения могут исполнятся на только на кампутерах, но и на на современных телевизорах. Адобе обьявило о соглашении с Samsung - в телевизорах Samsung будет прошивка FLASH-плеера. Об особенностях AIR я уже делал заметку, поэтому тут на эту тему повторятся не буду.
Для реального программирования во Flex - вам потребуется понимание работы IDE Eclipse - Знакомство с Adobe Flex 4. Кроме того, для реального программирования надо ориентироватся в версиях плееров (виртуальных машин FLASH), различать девелоперскую и пользовательскую версию и уметь их устанавливать - Новый Flex SDK 4.6, новый AIR 3.1 SDK, новый Flash Player 11.2, новые опции SWF-компилятора.
Связь с Flash Professoinal на данный момент меня интересует меньше любой из этих тем, поэтому экспорт графики из Flash во Flex и метатеги описания графики на этой страничке тоже описаны не будет.
Язык FLEX - операторы, глобальные константы, языковые конструкции.
Собственно язык программирования FLEX является стандартизированным ECMAScript-языком - и практически совпадает с JavaScript. Тем не менее приведу здесь для полноты его конструкции.
| N | Name | Type |
|---|---|---|
| 1 | break | Statements |
| 2 | case | Statements |
| 3 | continue | Statements |
| 4 | default | Statements |
| 5 | do..while | Statements |
| 6 | else | Statements |
| 7 | for | Statements |
| 8 | for..in | Statements |
| 9 | for each..in | Statements |
| 10 | if | Statements |
| 11 | label | Statements |
| 12 | return | Statements |
| 13 | super | Statements |
| 14 | switch | Statements |
| 15 | throw | Statements |
| 16 | try..catch..finally | Statements |
| 17 | while | Statements |
| 18 | with | Statements |
| 19 | dynamic | Attribute |
| 20 | final | Attribute |
| 21 | internal | Attribute |
| 22 | native | Attribute |
| 23 | override | Attribute |
| 24 | private | Attribute |
| 25 | protected | Attribute |
| 26 | public | Attribute |
| 27 | static | Attribute |
| 28 | ... (rest) parameter | Definition |
| 29 | class | Definition |
| 30 | const | Definition |
| 31 | extends | Definition |
| 32 | function | Definition |
| 33 | get | Definition |
| 34 | implements | Definition |
| 35 | interface | Definition |
| 36 | namespace | Definition |
| 37 | package | Definition |
| 38 | set | Definition |
| 39 | var | Definition |
| 40 | default xml namespace | Directives |
| 41 | import | Directives |
| 42 | include | Directives |
| 43 | use namespace | Directives |
| 44 | AS3 | Namespaces |
| 45 | flash_proxy | Namespaces |
| 46 | object_proxy | Namespaces |
| 47 | false | Expression |
| 48 | null | Expression |
| 49 | this | Expression |
| 50 | true | Expression |
| 51 | + addition | Operator (Arithmetic) |
| 52 | -- decrement | Operator (Arithmetic) |
| 53 | / division | Operator (Arithmetic) |
| 54 | ++ increment | Operator (Arithmetic) |
| 55 | % modulo | Operator (Arithmetic) |
| 56 | * multiplication | Operator (Arithmetic) |
| 57 | - subtraction | Operator (Arithmetic) |
| 58 | += addition assignment | Operator (Arithmetic compound assignment) |
| 59 | /= division assignment | Operator (Arithmetic compound assignment) |
| 60 | %= modulo assignment | Operator (Arithmetic compound assignment) |
| 61 | *= multiplication assignment | Operator (Arithmetic compound assignment) |
| 62 | -= subtraction assignment | Operator (Arithmetic compound assignment) |
| 63 | = assignment | Operator (Assignment) |
| 64 | & bitwise AND | Operator (Bitwise) |
| 65 | << bitwise left shift | Operator (Bitwise) |
| 66 | ~ bitwise NOT | Operator (Bitwise) |
| 67 | | bitwise OR | Operator (Bitwise) |
| 68 | >> bitwise right shift | Operator (Bitwise) |
| 69 | >>> bitwise unsigned right shift | Operator (Bitwise) |
| 70 | ^ bitwise XOR | Operator (Bitwise) |
| 71 | &= bitwise AND | Operator (Bitwise compound assignment) |
| 72 | <<= bitwise left shift and assignment | Operator (Bitwise compound assignment) |
| 73 | |= bitwise OR assignment | Operator (Bitwise compound assignment) |
| 74 | >>= bitwise right shift and assignment | Operator (Bitwise compound assignment) |
| 75 | >>>= bitwise unsigned right shift and assignment | Operator (Bitwise compound assignment) |
| 76 | ^= bitwise XOR assignment | Operator (Bitwise compound assignment) |
| 77 | /*..*/ block comment delimiter | Operator (Comment) |
| 78 | // line comment delimiter | Operator (Comment) |
| 79 | == equality | Operator (Comparison) |
| 80 | > greater than | Operator (Comparison) |
| 81 | >= greater than or equal to | Operator (Comparison) |
| 82 | != inequality | Operator (Comparison) |
| 83 | < less than | Operator (Comparison) |
| 84 | <= less than or equal to | Operator (Comparison) |
| 85 | === strict equality | Operator (Comparison) |
| 86 | !== strict inequality | Operator (Comparison) |
| 87 | && logical AND | Operator (Logical) |
| 88 | &&= logical AND assignment | Operator (Logical) |
| 89 | ! logical NOT | Operator (Logical) |
| 90 | || logical OR | Operator (Logical) |
| 91 | ||= logical OR assignment | Operator (Logical) |
| 92 | [] array access | Operator (Other) |
| 93 | as | Operator (Other) |
| 94 | , comma | Operator (Other) |
| 95 | ?: conditional | Operator (Other) |
| 96 | delete | Operator (Other) |
| 97 | . dot | Operator (Other) |
| 98 | in | Operator (Other) |
| 99 | instanceof | Operator (Other) |
| 100 | is | Operator (Other) |
| 101 | :: name qualifier | Operator (Other) |
| 102 | new | Operator (Other) |
| 103 | {} object initializer | Operator (Other) |
| 104 | () parentheses | Operator (Other) |
| 105 | / RegExp delimiter | Operator (Other) |
| 106 | : type | Operator (Other) |
| 107 | typeof | Operator (Other) |
| 108 | void | Operator (Other) |
| 109 | + concatenation | Operator (String) |
| 110 | += concatenation assignment | Operator (String) |
| 111 | " string delimiter | Operator (String) |
| 112 | @ attribute identifier | Operator (XML) |
| 113 | { } braces (XML) | Operator (XML) |
| 114 | [ ] brackets (XML) | Operator (XML) |
| 115 | + concatenation (XMLList) | Operator (XML) |
| 116 | += concatenation assignment (XMLList) | Operator (XML) |
| 117 | delete (XML) | Operator (XML) |
| 118 | .. descendant accessor | Operator (XML) |
| 119 | . dot (XML) | Operator (XML) |
| 120 | ( ) parentheses (XML) | Operator (XML) |
| 121 | < > XML literal tag delimiter | Operator (XML) |
| 122 | Array | Global Functions |
| 123 | Boolean | Global Functions |
| 124 | decodeURI | Global Functions |
| 125 | decodeURIComponent | Global Functions |
| 126 | encodeURI | Global Functions |
| 127 | encodeURIComponent | Global Functions |
| 128 | escape | Global Functions |
| 129 | int | Global Functions |
| 130 | isFinite | Global Functions |
| 131 | isNaN | Global Functions |
| 132 | isXMLName | Global Functions |
| 133 | Number | Global Functions |
| 134 | Object | Global Functions |
| 135 | parseFloat | Global Functions |
| 136 | parseInt | Global Functions |
| 137 | String | Global Functions |
| 138 | trace | Global Functions |
| 139 | uint | Global Functions |
| 140 | unescape | Global Functions |
| 141 | Vector | Global Functions |
| 142 | XML | Global Functions |
| 143 | XMLList | Global Functions |
| 144 | Infinity | Global Constants |
| 145 | -Infinity | Global Constants |
| 146 | NaN | Global Constants |
| 147 | undefined | Global Constants |
| 148 | ArgumentError | Top Class (playerglobal.swc) |
| 149 | arguments | Top Class (playerglobal.swc) |
| 150 | Array | Top Class (playerglobal.swc) |
| 151 | Boolean | Top Class (playerglobal.swc) |
| 152 | Class | Top Class (playerglobal.swc) |
| 153 | Date | Top Class (playerglobal.swc) |
| 154 | DefinitionError | Top Class (playerglobal.swc) |
| 155 | Error | Top Class (playerglobal.swc) |
| 156 | EvalError | Top Class (playerglobal.swc) |
| 157 | Function | Top Class (playerglobal.swc) |
| 158 | int | Top Class (playerglobal.swc) |
| 159 | JSON | Top Class (playerglobal.swc) |
| 160 | Math | Top Class (playerglobal.swc) |
| 161 | Namespace | Top Class (playerglobal.swc) |
| 162 | Number | Top Class (playerglobal.swc) |
| 163 | Object | Top Class (playerglobal.swc) |
| 164 | QName | Top Class (playerglobal.swc) |
| 165 | RangeError | Top Class (playerglobal.swc) |
| 166 | ReferenceError | Top Class (playerglobal.swc) |
| 167 | RegExp | Top Class (playerglobal.swc) |
| 168 | SecurityError | Top Class (playerglobal.swc) |
| 169 | String | Top Class (playerglobal.swc) |
| 170 | SyntaxError | Top Class (playerglobal.swc) |
| 171 | TypeError | Top Class (playerglobal.swc) |
| 172 | uint | Top Class (playerglobal.swc) |
| 173 | URIError | Top Class (playerglobal.swc) |
| 174 | Vector | Top Class (playerglobal.swc) |
| 175 | VerifyError | Top Class (playerglobal.swc) |
| 176 | XML | Top Class (playerglobal.swc) |
| 177 | XMLList | Top Class (playerglobal.swc) |
Метатеги <FX: - управление компиляцией FLEX-приложений.
| N | Short | Type |
|---|---|---|
| 1 | Array | DataType |
| 2 | Binding | CompilerTag |
| 3 | Boolean | DataType |
| 4 | Class | DataType |
| 5 | Component | CompilerTag - spark.components.package-detail |
| 6 | Date | DataType |
| 7 | Declarations | CompilerTag |
| 8 | Definition | CompilerTag |
| 9 | Function | CompilerTag |
| 10 | int | DataType |
| 11 | Library | CompilerTag |
| 12 | Metadata | CompilerTag - mxml.metadata |
| 13 | Model | CompilerTag - mxml.model |
| 14 | Number | DataType |
| 15 | Object | DataType |
| 16 | Private | CompilerTag - mxml.private |
| 17 | Reparent | CompilerTag |
| 18 | Script | CompilerTag - mxml.script |
| 19 | String | DataType |
| 20 | Style | CompilerTag |
| 21 | uint | DataType |
| 22 | Vector | DataType |
| 23 | XML | CompilerTag - mxml.xml |
| 24 | XMLList | CompilerTag |
Здесь вы видите в едином списке и простые типы данных FLEX и метатеги управления компилятором (так предлагает метатеги подсказка Adobe Flex Builder). Внутри метатегов содержится большое количество директив. Например внутри тега Style - может находится почти полный аналог CSS-стилей, опеределенных в HTML.
Метатег Metadata - самый распространенный тег. В нем определяются события, встроенные ресурсы и другие директивы управления компилятором:
- [Alternative]
- [ArrayElementType]
- [Bindable]
- [DefaultProperty]
- [Deprecated]
- [Effect]
- [Embed]
- [Event]
- [Exclude]
- [ExcludeClass]
- [HostComponent]
- [IconFile]
- [Inspectable]
- [InstanceType]
- [NonCommittingChangeEvent]
- [RemoteClass]
- [RichTextContent]
- [SkinPart]
- [SkinState]
- [SWF]
- [Transient]
Метатеги можно создать и свои собственные.
Теги <S: - декларации SPARK-компонентов.
Здесь вы видите не только визуальные компоненты SPARK, но и все прочие теги из пространства имен SPARK. Опущены лишь ссылки на описание нескольких тегов, аналогичных HTML. Таблицу можно сортировать.
Небольшая странность компилятора FLEX в том, что часть тегов <S: (которым положено находится в пространстве имен SPARK) - находится в пространстве имен MX. Сейчас Adobe переходит с MX на SPARK и, как я понимаю, в следующих версиях MX будет использоватся все меньше и меньше.
Теги <MX: - декларации Gumbo-компонентов.
Многие компоненты MX устарели в новой версии FLEX 4.6 - многие, но не все. Многие популярные визуальные компоненты, например ViewStack по прежнему остаются только в MX. В приниципе это напряг и источник путаницы. Но при желании разобраться можно - в этом поможет также таблица устаревших MX-тегов и замещающих их SPARK-тегов.
Обьекты FLEX, доступные для программного управления.
Обратите внимание, что тегами можно создать (описать некие обьекты) - сплошь и рядом из программной модели доступны такие свойства, которые не понимает компилятор FLEX, обрабатывающий XML-теги. Но верно и обратное - компилятор FLEX съедает описательные теги и создает такие обьекты, которые нельзя создать из программного кода (например смотрите описание тега <fx:XMLList>).
В том, что этот список не совпадает с двумя списками выше - есть некая странность. Однако, если задуматся, то необязательно лексический и синтаксический анализатор XML-выражений FLEX должен в точности воспроизводить программную модель. Хотя если бы воспроизводил в точности - было бы наверное удобнее. С другой стороны, у микрософта всего пару тегов можно прописать в виде XML (@Page, @Control и тд) - Adobe прошло по пути к ИДЕАЛЬНОМУ соответствию гораздо дальше мани-мейкеров Билла Гейтса.
Как вы понимаете, у каждого из этих обьектов есть огромное число свойств, методов, параметров, режимов работы. Этот чемодан знаний и является основой знания FLEX-платформы.
Пространства имен верхнего уровня.
Каждое из этих пространств имен состоит из огромного числа отдельных классов, например в разделе Теги <S: - декларации SPARK-компонентов. выше были рассмотрены основные рабочие классы из пространства имен spark.
Основные библиотеки виртуальной машины FLASH.
В связи с тем, что на сервере я по прежнему работаю в основном на .NET Framework - мой набор основных библиотек дополнен библиотекой FLAME - Криптография во Flex.
| N | Name | Size | Type |
|---|---|---|---|
| 1 | advancedgrids_4.6.0.23201.swz | (150,132 bytes) | Adobe runtime shared library |
| 2 | charts_4.6.0.23201.swz | (150,136 bytes) | Adobe runtime shared library |
| 3 | framework_4.6.0.23201.swz | (327,044 bytes) | Adobe runtime shared library |
| 4 | mx_4.6.0.23201.swz | (322,020 bytes) | Adobe runtime shared library |
| 5 | osmf_1.0.0.16316.swz | (141,160 bytes) | Adobe runtime shared library |
| 6 | rpc_4.6.0.23201.swz | (132,753 bytes) | Adobe runtime shared library |
| 7 | sparkskins_4.6.0.23201.swz | (54,416 bytes) | Adobe runtime shared library |
| 8 | spark_4.6.0.23201.swz | (482,555 bytes) | Adobe runtime shared library |
| 9 | spark_dmv_4.6.0.23201.swz | (7,303 bytes) | Adobe runtime shared library |
| 10 | textLayout_2.0.0.232.swz | (186,370 bytes) | Adobe runtime shared library |
| 11 | playerglobal.swc | (337,288 bytes) | Adobe player 11.1 |
| 12 | mx.swc | (960,612 bytes) | Adobe MX frameworks 4.6 |
| 13 | mobilecomponents.swc | (190,175 bytes) | Adobe mobile frameworks |
| 14 | advancedgrids.swc | (353,603 bytes) | Adobe frameworks 4.6 |
| 15 | authoringsupport.swc | (21,849 bytes) | Adobe frameworks 4.6 |
| 16 | charts.swc | (669,311 bytes) | Adobe frameworks 4.6 |
| 17 | core.swc | (109,875 bytes) | Adobe frameworks 4.6 |
| 18 | flash-integration.swc | (28,055 bytes) | Adobe frameworks 4.6 |
| 19 | framework.swc | (830,204 bytes) | Adobe frameworks 4.6 |
| 20 | osmf.swc | (349,180 bytes) | Adobe frameworks 4.6 |
| 21 | rpc.swc | (311,135 bytes) | Adobe frameworks 4.6 |
| 22 | spark.swc | (1,340,739 bytes) | Adobe frameworks 4.6 |
| 23 | sparkskins.swc | (121,105 bytes) | Adobe frameworks 4.6 |
| 24 | spark_dmv.swc | (12,303 bytes) | Adobe frameworks 4.6 |
| 25 | textLayout.swc | (473,400 bytes) | Adobe frameworks 4.6 |
| 26 | aircore.swc | (7,818 bytes) | Adobe AIR frameworks 3.2 |
| 27 | airframework.swc | (1,031,403 bytes) | Adobe AIR frameworks 3.2 |
| 28 | airglobal.swc | (536,749 bytes) | Adobe AIR frameworks 3.2 |
| 29 | airspark.swc | (61,376 bytes) | Adobe AIR frameworks 3.2 |
| 30 | applicationupdater.swc | (46,803 bytes) | Adobe AIR frameworks 3.2 |
| 31 | applicationupdater_ui.swc | (406,675 bytes) | Adobe AIR frameworks 3.2 |
| 32 | servicemonitor.swc | (6,576 bytes) | Adobe AIR frameworks 3.2 |
| 33 | automation.swc | (86,454 bytes) | Adobe automation frameworks |
| 34 | automation_agent.swc | (74,847 bytes) | Adobe automation frameworks |
| 35 | automation_air.swc | (16,372 bytes) | Adobe automation frameworks |
| 36 | automation_airspark.swc | (4,808 bytes) | Adobe automation frameworks |
| 37 | automation_dmv.swc | (48,742 bytes) | Adobe automation frameworks |
| 38 | automation_flashflexkit.swc | (7,562 bytes) | Adobe automation frameworks |
| 39 | automation_spark.swc | (86,685 bytes) | Adobe automation frameworks |
| 40 | qtp.swc | (49,172 bytes) | Adobe automation frameworks |
| 41 | qtp_air.swc | (67,816 bytes) | Adobe automation frameworks |
| 42 | FlexContentHolderThumbnail.swc | (3,859 bytes) | Adobe authoringsupport |
| 43 | halo.swc | (8,356 bytes) | Adobe themes Halo |
| 44 | mobile.swc | (167,328 bytes) | Adobe themes Mobile |
| 45 | wireframe.swc | (219,080 bytes) | Adobe themes Wireframe |
| 46 | arcade.swc | (208,286 bytes) | Adobe themes arcade |
| 47 | cobalt.swc | (560,814 bytes) | Adobe themes cobalt |
| 48 | graphite.swc | (198,247 bytes) | Adobe themes graphite |
| 49 | zen.swc | (261,196 bytes) | Adobe themes zen |
Примеры FLEX-приложений.
- 2012 год: Как создавать простые тетрис-подобные аркады на Флексе за несколько кликов мышкой.
- 2012 год: Flex-preloader.
- 2012 год: Криптография во Flex.
- 2012 год: Модуль векторной графики для построения графов.
- 2012 год: Создание асинхронного прокси для обращения к WCF средствами Adobe flex builder.
- 2012 год: Шаблон Flex/Air приложений со вкладками - ViewStack.
- 2012 год: Новый Flex SDK 4.6, новый AIR 3.1 SDK, новый Flash Player 11.2, новые опции SWF-компилятора.
- 2012 год: Векторное рисование в полярных координатах и арктангенс.
- 2011 год: Simple Freeware OpenSource Flex Player for Web (one sound).
- 2011 год: Парсинг AJAX-сайтов в среде AIR (путем выполнения jQuery-запросов из ActionScript).
- 2011 год: Флекс диаграммы.
- 2011 год: Видео-камеры, видео-чаты и Flash-медиасервера (работающие по RTMP и самописным протоколам).
- 2011 год: Сокеты во Flash.
- 2011 год: Freeware OpenSource панорамный фотослайдер.
- 2011 год: AIR приложения для платформ Android, Macintosh и Linux.
- 2011 год: Реклама в видеоплеере (возможности объектного программирования ActionScript).
- 2011 год: Трехмерное вдохновение PaperVision3D.
- 2011 год: TextBannerRotator - простой ротатор текстовых баннеров с эффектом BLUR.
- 2011 год: OpenSource Freeware FotoSlider on Flex 3 and jQuery.
- 2011 год: Как сделать SOAP/WSDL-вебсервис на ASP.NET/MONO для вызова его из FLEX.
- 2011 год: Как с помощью jQuery сделать флеш-ролик резиновым.
- 2011 год: Мой первый фото-слайдер на Flex 4.
- 2011 год: Знакомство с Adobe Flex 4.
- 2010 год: Анимация и программирование в Flash Professional.
Doc context:
Flex context:
)
|
|