Я работаю с Flex, и мне нужно взять относительное свойство источника URL-адреса и преобразовать его в абсолютный URL-адрес перед загрузкой.
Конкретный случай, с которым я работаю, включает в себя настройку метода загрузки SoundEffect. Мне нужно определить, будет ли файл загружен из локальной файловой системы или по сети, просматривая свойство источника, и я нашел самый простой способ сделать это - создать абсолютный URL.
У меня проблемы с генерацией абсолютного URL для звукового эффекта, в частности. Вот мои первые мысли, которые не сработали.
Найдите объект DisplayObject, для которого предназначен звуковой эффект, и используйте его свойство loaderInfo. При загрузке SoundEffect цель равна нулю, поэтому это не работает.
Посмотрите на FlexGlobals.topLevelApplication, на свойства url или loaderInfo. Однако ни один из них не установлен.
Посмотрите на FlexGlobals.topLevelApplication.systemManager.loaderInfo. Это также не было установлено.
Код SoundEffect.as в основном сводится к
var url:String = "mySound.mp3";
/*>> I'd like to convert the URL to absolute form here and tweak it as necessary <<*/
var req:URLRequest = new URLRequest(url);
var loader:Loader = new Loader();
loader.load(req);
Кто-нибудь знает, как это сделать? Любая помощь, разъясняющая правила разрешения относительных URL для URLRequest в ActionScript, также будет высоко оценена.
edit
Я также был бы совершенно удовлетворен каким-либо способом определить, будет ли URL загружен из локальной файловой системы или по сети. Посмотрев на абсолютный URL, было бы просто взглянуть на префикс, например file://
или http://
.