가장 세련된 솔루션인지는 확실하지 않습니다. 누군가가 더 좋은 방법을 알고 있다면 나는 배울 것이 기쁘다. 주요 아이디어는 나중에 대체 할 수있는 고유 한 문자열로 을 선언하는 것입니다. 제 경우에는 __ 호스트 __ 및 __ 포트 __을 사용했습니다. 구성 파일을 읽은 후에는이 문자열을 파일에서 가져온 값으로 바꿉니다.
Main.mxml
:
<s:HTTPService
id="myService"
url="http://__host__:__port__/appName/..."
useProxy="false" method="POST" resultFormat="text"
result="onResult(event)"
fault="fault(event)">
<mx:request xmlns="">
<method>search</method>
<input>{input.text}</input>
</mx:request>
</s:HTTPService>
과 서비스 설정 :
private function initApp():void
{
var ldr:URLLoader = new URLLoader();
ldr.addEventListener(Event.COMPLETE, onLoadPropsFile);
ldr.load(new URLRequest("service-config.txt"));
}
private function onLoadPropsFile(e:Event):void
{
var host:String;
var port:String;
var loadedText:String = URLLoader(e.target).data;
var array:Array = loadedText.split('\r\n');
for each(var entry:String in array)
{
var keyValuePair:Array = entry.split('=');
var key:String = keyValuePair[0];
var val:String = keyValuePair[1];
if(key == 'host')
{
host = val;
}
if(key == 'port')
{
port = val;
}
}
var value:Number = Number(loadedText);
resolveServiceUrl(myService, host, port);
}
private function resolveServiceUrl(service:HTTPService, host:String, port:String):void
{
service.url = service.url.replace('__host__', host);
service.url = service.url.replace('__port__', port);
}
initApp()가
<s:Application xmlns:...
...
initialize="initApp();" >
서비스에 의해 호출이 방법을 선언했다. txt는 매우 간단합니다.
host=localhost
port=8090
누군가가 도움이되기를 바랍니다.
분명히 제대로 검색하지 못했습니다. 당신이해야 할 일은 : xml 또는 csv 또는 소프트 코드 할 데이터가있는 파일을 가지고 있어야합니다. 프로그램을 실행할 때이 파일을 읽고 파싱하여 데이터를 얻은 다음'setCustomerInstalledPackageService.url' 파일로 설정하고 설정하십시오. –
감사합니다 @PranavHosangadi; 그것은 나를 조금 도와 줬다. 그러나, 나는 "완벽한 해결책"을 찾고 있었는데, 정확히 어떻게 파일에서 읽었는지, 값을 설정했는지 등등을 의미했습니다. 해결책을 발견하고 대답으로 여기에 썼습니다. 당신은 한 번 봐 주시고, 당신이 의견이나 더 좋은 아이디어를 가지고 계신지 볼 수 있습니까? – OhadR