Boa Tarde,
Estou com um problema, tenho o endereço do meu servidor em um arquivo
ActionScript (faço a construção do Remote Object manualmente, não uso
o arquivo services-config.xml). Porém, ele ficava embutido junto com o
código compilado do .swf. Mas, isso não me resolve pois quero gerar
somente um build e conforme o cliente que está instalado ele pode
mudar para o I.P que ele quiser. (para indicar onde está o servidor).
Por isso, fiz uma modificação que deixaria o endereço armazenado em um
arquivo .txt e eu leio este endereço na hora que o cliente abre o
aplicativo Flex, em tempo de execução.
Por exemplo:
public class Configuracao
{
public static var initialized:Boolean = false;
private static var request:URLRequest;
private static var loader:URLLoader;
private static var _ENDERECO_PUBLICO:String;
{
request = new URLRequest("servidor.text");
loader = new URLLoader();
loader.dataFormat=URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, onComplete);
loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
loader.load(request);
}
public static function onComplete(event:Event):void
{
_ENDERECO_PUBLICO = event.target.data.enderecoPublico;
initialized = true;
}
public static function get ENDERECO_PUBLICO():String
{
return _ENDERECO_PUBLICO;
}
}
O arquivo é inicializado no bloco estático apenas na primeira vez que
a classe é inicializada. O problema é se eu tentar chamar o getter
antes do arquivo ter sido aberto por completo.
Ele vai pegar o valor vazio.... O que posso fazer para o método getter
se tornar "consistente"?
Tentei fazer:
while(!initialized)
{
...
}
Para "ocupar" o método enquanto ele não carrega o arquivo e depois
passaria para o return, no entanto, pelo que vi o Flash Player não é
multi-thread então o código ficaria ocupado dentro do while e não
continuaria abrindo o arquivo... mas se não coloco essa verificação o
return é inconsistente.
Abraços!
--
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev