Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Распознать AIR или WEB (http://www.flasher.ru/forum/showthread.php?t=195636)

mono.solar 10.03.2013 20:01

Распознать AIR или WEB
 
Здравствуйте господа флешеры. Есть такая ситуёвина:

В Adobe Flash Builder 4.6 создана рабочая среда, где находится:
- проект AIR
- проект WEB
- либа (библиотечный проект), общая, которая подключена и к AIR-проекту, и к WEB-проекту.

Если эту либу компилирует AIR-проект, то должен работать кусок кода, использующий чисто AIR-овские фишки, например:

import flash.desktop.NativeApplication;
import flash.display.NativeWindow;
import flash.display.Screen;

А если же WEB-проект - то естественно их отключать, так как данных библиотек в WEB-овской сборке не существует.

Вопрос: какими средствами этого можно добиться?

Был опробован метод условной компиляции CONFIG::debugging с описанием директивы в либе -define=CONFIG::debugging,true , однако большого эффекта не произвело, потому как должно описываться именно в проекте Либ, а не в WEB или AIR.

Спасибо.

trng 10.03.2013 20:48

У вас уже все 'распознано': есть проект AIR, есть WEB. Вот в них и выносите участки кода, специфичные для каждого из проектов. А в либе оставьте только общий код.

Добавлено через 2 минуты
Как вариант - три либы: общая, AIR и WEB.

Добавлено через 4 минуты
Или одна либа с отдельными функциями для каждого из проектов.

Добавлено через 6 минут
Но принципиально все три варианта сводятся к одному и тому же: обращение к специфичным функциям происходит в проектах, а не в либе, т.е. никакого 'распознавания' не требуется.

mono.solar 11.03.2013 12:37

trng благодарю за мысль, но к сожалению всё не совсем так.
Представьте, что в либе лежит некая Group, которую добавляет в себя AIR и WEB. И при этом в Group, в зависимости от продолжателя, должен находится Window, если продолжатель AIR, или Panel, если продолжатель WEB.

alatar 11.03.2013 13:54

У вас всего три варианта.
1. Как уже писал trng, разделить библиотеку на две (три и т.д.) web и air (может использовать web библиотеку) и подключать в зависимости от типа проекта.
2. Если библиотека идет в исходниках, можно использовать инструменты сборки типа ant и собирать библиотеку вместе с приложением.
3. Проверять среду исполнения с помощью Capabilities и получать необходимые классы через getDefinitionByName().

Если предполагается, что библиотека поставляется в swc формате, то она уже скомпилирована и при сборке проекта используются уже готовые классы из нее, без дополнительной компиляции.

mono.solar 11.03.2013 18:56

alatar спасибо за мысль о Capabilities ! Похоже это то, что нужно.


Часовой пояс GMT +4, время: 00:57.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.