Мне нужно прочитать URL-адрес, который отображается в браузере при вызове приложения Flex, потому что я бы сослался на него в mxml, конфигурирующем Cairngorm
удаленные объекты.
Цель, которую я бы достиг, - это автоматическая настройкаCairngorm
сервисы из среды в среду (dev, test, qa, prod) без статической установки значения в mxml или другом ActionScript.Поскольку клиент Flex развернут в корне войны веб-приложения, достаточно прочитать, куда указывает браузер.
Я написал класс, который делает это:
public class ConfigServer {
public function ConfigServer() {
var loaderUrl:String = FlexGlobals.topLevelApplication.loaderInfo.loaderURL;
var urlToSet:String = <loaderURL-string-manipulation>;
_serverUrl = urlToSet;
}
private var _serverUrl:String = '';
public function get serverUrl():String
{
return _serverUrl;
}
}
В моем mxml я бы сделал так:
<mx:Script>
<![CDATA[
import org.fao.fapda.util.ConfigServer;
private var configuration:ConfigServer = new ConfigServer();
]]>
</mx:Script>
<mx:RemoteObject
id="userService"
destination="userService"
endpoint= "{configuration.serverUrl}/messagebroker/amf"
showBusyCursor="true"
requestTimeout="100"
/>
Но всякий раз, когда я вызываю конструктор ConfigServer
, и для каждой (мне известной) техники, которую я применял (статика или одиночные игры или общедоступная ро), явсегда была одна и та же ошибка:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at org.fao.fapda.util::ConfigServer()[C:\dev\workspaces\FAPDA\trunk\FAPDA-client\src\org\fao\fapda\util\ConfigServer.as:8]
Cairngorm
инициализация служб выполняется следующим образом:
<fx:Declarations>
<cut/>
<services:FAPDAServices id="services"/>
<cut/>
</fx:Declarations>
, и проблема в том, что FAPDAServices.mxml
читается до FlexGlobals
допустимо ...
Есть ли в жизненном цикле приложения Flex точка, в которой определен такой loaderURL
, чтобы я мог построить ConfigServer
?Когда в событиях запуска эта инициализация завершена?
Признаюсь, я новичок в Flex epic, так что, возможно, я совершенно не прав в этом.
С уважением