Путеводитель по документации 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.
|