MXML без Flex Framework / компонентов

Компилятор Flex может компилировать SWF-файлы "чистого AS3", не содержащие байт-кода компонентов Flex. Так,

Можно ли было бы создать структуру пользовательских компонентов (используемую вместо Flex Framework), которую можно было бы визуально разложить с помощью MXML (читай: разметка) и скомпилировать в SWF без каких-либо зависимостей от самой Flex Framework?

Что для этого мотивация? Вы хотите написать свой собственный фреймворк как OpenLaszlo?

airportyh 12.01.2009 02:59
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
1
1 955
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Существует два разных компилятора: один используется для компиляции кода ActionScript в байт-код AVM, а другой (mxmlc) компилирует файлы MXML в код ActionScript, который затем, в свою очередь, компилируется первым компилятором. Если вы хотите увидеть, какой код AS3 сгенерирован, передайте компилятору MXML параметр «-keep».

Теоретически можно делать то, что вы предлагаете. Я предполагаю, что mxmlc сильно влияет на функции класса UIComponent, поэтому вам, вероятно, придется немного взломать mxmlc, чтобы он не блевал на классах, не относящихся к UIComponent. Тем не менее, поскольку такие вещи, как [Bindable] / привязка данных, используют функции фреймворка Flex (а не простые функции Flash Player / AVM), вам придется переписывать очень много кода.

Ответ принят как подходящий

Да, это возможно. По сути, ваши файлы MXML - это просто другой способ указания классов. Вы можете увидеть, к чему сводятся файлы mxml, скомпилировав свой проект и предоставив -compiler.keep-generated-actionscript=true в mxmlc.

bar.mxml:

<?xml version = "1.0" encoding = "utf-8"?>
<flash:Sprite xmlns:flash = "flash.display.*">
</flash:Sprite>

После компиляции с mxmlc -compiler.keep-generated-actionscript=true bar.mxml получается следующее.

сгенерировано / bar-generated.as:

package {
    import flash.display.Sprite;
    // bunch of imports
    public class bar extends Sprite {
        public function bar() { super(); }
    }
}

Аргумент компилятора можно сократить до -keep. Намного легче запомнить.

Josh Tynjala 12.01.2009 23:40

Другие вопросы по теме