| « Flash Platform: User-группы | Flex: свой прелоадер » |
Data Binding во Flex: ActionScript Project
Итог: Data Binding-классы неотделимы от Flex Framework и добавляют к ActionScript проекту ~120 КБ.
Подробнее: Если проект обладает нетипичной для RIA структурой и функциональностью (например, игра), стандартные компоненты в нем не пригодятся то мне показалось логично использовать не Flex Project, а ActionScript Project - это позволит как минимум не включать Application и все связанные с ним классы в проект.
Однако Data Binding бросать не хотелось, и я (по незнанию) решил попробовать его подключить.
- Для начала я добавил опцию компилятора -keep-generated-actionscript=true
- Затем написал
- [Bindable]
- public var timeLeft:uint;
Получаем ошибки:
Definition mx.binding:BindingManager could not be found.
Definition mx.core:IPropertyChangeNotifier could not be found.
...В папке bin/generated мы можем увидеть код, который собственно импортирует эти классы и вызывает ошибку (файл имеет длинное производное от имени класса название).
Что интересно, так это и у Flex Project и у ActionScript Project в Library Path прописан один путь - C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0 - по которому на самом деле библиотек нет (они во вложенных папках).
Если попытаться к нашему проекту насильно добавить сами библиотеки и Resource Bundles:
- C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\libs
- C:\Program Files\Adobe\Flex Builder 3\sdks\3.0.0\frameworks\locale\en_US
то все скомпилируется и мы увидим в папке generated пару десятков файлов, отвечающих за стили и еще Бог знает что. Размер проекта увеличивается на ~120 КБ.
Трекбек адрес этой записи
URL трекбека (щелкните правой кнопкой мыши и скопируйте ссылку)
7 комментариев
А странный все же размер - аж 120 кб. Это именно увеличение размера результирующего SWF-файла?
Она выписывает в xml-файлик последовательно все сущности (классы, одиночные функции, неймспейсы) с пререквизитами и зависимостями. Т.е. проанализировав его можно сказать, что нужно отрезать и как это сделать.
Но там обычно несколько тыщ строк
Да, в CS3 датабиндинга нет, как и кое-чего другого, например, компонента ВебСервисов.
Но не удивлюсь, если окажется, что оно на самом деле есть, только называется по другому и забыто в документации. Как, например, Flash Remoting: его в CS3 можно использовать без всяких специальных компонентов (а раньше было нельзя): все делается через NetConnection. Это я так, к слову ;-)




