Я искал лучший способ справиться с этой проблемой, может быть, это просто словоблудие, которое я использую, но я не могу найти ответ, который хочу.Я объясню, что я делаю, и, надеюсь, кто-то там сможет объяснить, как это сделать.
При разработке флэш-проекта на моей машине я могу использовать что-то вроде:
var request:URLRequest = new URLRequest("images.xml");
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handleResult);
loader.addEventListener(IOErrorEvent.IO_ERROR, handleIOError);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, handleSecurityError);
loader.load(request);
Пока файл images.xml находится в том же каталоге, что и .fla, он работает нормально.Однако, как только я перемещаю .swf, .xml и мои изображения в Интернет, все это уходит в пропасть..Swf больше не может найти файл .xml, и я знаю почему.Используя FlashBug я могу прочитать ошибку в консоли.
IOError: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://www.mydomain.com/images.xml"]
И есть проблема, когда я перемещаю свой .swf на свой веб-сервер, URLRequest добавляет мой домен к запросу.Поскольку файл просто находился в той же директории на моей машине, это не вызвало проблемы просто сказать «images.xml», но теперь, чтобы заставить его работать, я должен изменить его на «http://www.mydomain.com/flash/myproject/images.xml".
Я хочу знать, есть ли способ заставить .swf просто продолжить поиск в каталоге, в котором он находится, для файлов, в которых он нуждается. Я думаю, что объяснять это нелогично, потому что тогда я не могупросто переместите файлы без необходимости переписывать мой код AS3.
Я знаю, что это можно сделать, я видел проекты, которые делают это, я просто хотел бы знать, как они это сделали.