Простой способ обработки URL-адресов для разработки / производства в приложении Flex Air - PullRequest
1 голос
/ 15 мая 2009

Простой способ обработки URL-адресов разработки / производства в приложении flex air? Я хочу указать мой локальный ящик для тестирования, но при запуске я хочу, чтобы он автоматически указывал на рабочий URL.

Ответы [ 5 ]

0 голосов
/ 18 мая 2009

У меня была эта проблема в приложении AIR, которое я пишу, которое попадает в приложение Rails через WebORB.

Мне просто нужно переключиться между http://localhost и http://fakeproductionurl.com в зависимости от того, работал ли я в Flex Builder (через adl).

Вот что я в итоге использовал:

if (NativeApplication.nativeApplication.publisherID != "") {
   return "http://fakeproductionurl.com";
}
else {
   return "http://localhost";
}

Это не дает вам возможности переключаться между 3+ различными средами, но это очень простой способ переключения между средами разработки / производства.

0 голосов
/ 15 мая 2009

Я обычно смотрю на url в объекте contentLoaderInfo в приложении (Flex - http://livedocs.adobe.com/flex/201/langref/mx/core/Application.html#url) или в корневом экранном объекте (Flash - http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/LoaderInfo.html#url). Если начинается URL-адрес) с помощью «file» вы знаете, что находитесь в вашей среде разработки / IDE, если это «http», он запускается в браузере. Если вы просто работаете в браузере, вы также можете передать параметр объекту, который имеет что-то как

{
    url: $_SERVER['SERVER_NAME'];
}

и выполните какой-либо метод инициализации / запуска для переключения в зависимости от пути, по которому выполняется приложение.

0 голосов
/ 15 мая 2009

Вы можете использовать пространства имен и настроить текущее пространство имен (DEV / RELEASE) в параметрах компилятора.

CONFIG::release
public function connect()
{
  //connect to release url
}

CONFIG::dev
public function connect()
{
   //connect to dev url
}

затем определите эти параметры для компилятора:

-define=CONFIG::release,false
-define=CONFIG::dev,true
0 голосов
/ 15 мая 2009

Лучший подход заключается в том, чтобы перенести эту информацию в файл конфигурации - возможно, в файл XML - который загружается через относительный URL-адрес. Конфигурационный файл может выглядеть так:

<config>
    <serviceEndpoint>http://www.mydomain.com/services</serviceEndpoint>
</config>

Обязательно присвойте своим элементам XML правильные имена переменных ActionScript, иначе вы можете столкнуться с некоторыми трудностями при работе с файлом (например, выражения E4X могут стать трудными.

Затем вы можете использовать HTTPService для загрузки «config.xml», который размещается вместе с SWF-файлом вашего приложения при развертывании. Это позволит вам повторно назначать SWF-файл, размещенный в любом домене, для бэкэнда, размещенного в другом месте. Это особенно полезно, если вы разрабатываете локально и подключаетесь к общему серверу разработки.

Компиляция этой информации в ваш SWF-файл очень негибкая и плохая практика.

0 голосов
/ 15 мая 2009

Я предлагаю либо использовать файл конфигурации, либо изменить файл hosts для указания доменов на локальный сервер или серверы разработки на вашем компьютере разработчика. В последнем варианте вы всегда используете рабочие URL-адреса в коде, но ваш компьютер-разработчик будет преобразовывать эти домены в ваш локальный компьютер, потому что сначала он проверяет файл hosts.

...