Я не знаком с Adobe Air и загружаю файл на сервер. Для простых целей тестирования я жестко закодировал URL-адрес загрузки (в частности, URL-адрес каталога загрузки на сервере, на который указывают каналы amf) в коде. Есть ли способ в Adobe Air получить этот URL-адрес сервера во время выполнения?
Или вопрос не имеет смысла, потому что есть способ лучше?





Мне кажется, вы хотите, чтобы URL загрузки был динамическим. В этом случае вы можете использовать множество методов получения таких данных во время выполнения. На вашем месте я бы использовал XML, и ниже я проиллюстрирую, как это сделать.
//THE XML - Place in same folder as the FLA and name setup.xml
<?XML version = "1.0" encoding = "utf-8"?>
<xml>
<upload url = "path/to/file" />
</xml>
Теперь это очень простой XML-файл, он может так же легко включать информацию для фоновой музыки, текст в формате CSS, обернутый в CDATA, или любой другой тип данных, которые вы хотите сохранить и извлечь.
//The ActionScript 3.0
package
{
import flash.display.Sprite;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
public class TestDocClass extends Sprite
{
private var _xml:XML;
private var _xmlLoader:URLLoader;
private var _xmlRequest:URLRequest;
public function TestDocClass():void
{
_xmlLoader = new URLLoader();
_xmlRequest = new URLRequest('setup.xml');
_xmlLoader.addEventListener(Event.COMPLETE, onXMLComplete, false, 0, true);
_xmlLoader.load(_xmlRequest);
}
private function onXMLComplete(e:Event):void
{
_xmlLoader.removeEventListener(Event.COMPLETE, onXMLComplete, false);
//Create the XML object and insert the data.
_xml = new XML(e.target.data);
//Now to access the upload line we use its Namespace of "upload"
//The @ symbol specifies we are retrieving an attribute.
trace(_xml.upload.@url);
}
}
}
Таким образом, в любом месте, где вам нужно это место загрузки, вы просто вызываете _xml.upload.@url или можете установить переменную на это значение при поступлении данных (var uploadURL:String = _xml.upload.@url).