У меня есть веб-приложение, написанное на Flex, и я пытаюсь создать приложение AIR из той же кодовой базы, используя условную компиляцию.
В приложении AIR мне нужны операторы импорта, такие как:
импортировать flash.data.SQLConnection;
импортировать flash.filesystem.File;
но я не могу иметь эти операторы импорта в веб-приложении, потому что они являются классами только для AIR.
Я думал, что смогу использовать условную компиляцию для преодоления этой проблемы, но затем я прочитал следующее на странице http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7abd.html:
«Нельзя использовать постоянные логические значения для условной метаданных или операторов импорта.»
Если это так, как я могу иметь общую кодовую базу для веб-приложений на основе Flex, а также для настольных приложений? Кто-нибудь решил эту головоломку?
Спасибо
Дилип
Подробнее об этом вопросе после некоторых проб и ошибок ...
У меня есть 3 проекта в Eclipse для этого проекта ... один для веб-приложения, один для приложения AIR и один для общего исходного кода. В веб-проекте и проекте AIR я указываю на общий исходный код. В общем коде я использовал условную компиляцию, и похоже, что вы можете сделать что-то вроде следующего:
CONFIG :: desktopMode {
импортировать flash.data.SQLConnection;
импорт flash.events.SQLEvent;
import flash.events.SQLErrorEvent;
импортировать flash.filesystem.File;
}
и аналогичный подход для включения определенных функций для Интернета или AIR во время компиляции. Подход, кажется, сработал до сих пор!
Единственное место, где я сталкивался с проблемами, это локатор модели моего Cairngorm. Если я поместил CONFIG :: desktopMode вокруг операторов import в локаторе модели Cairngorm, он начнет выдавать ошибку «Uncaught исключения в компиляторе» или «1131 классы не должны быть вложенными». Я не уверен, как исправить эту ошибку!
Дилип