Это сценарий, который загружает указанный файл .log (текстовый) и динамически показывает его содержимое в фильме (исполнитель и песня из текущей воспроизводимой дорожки).
Поскольку проигрыватель создает новые файлы .log через определенное время, мне нужно вручную выбрать последний файл .log при запуске .swf или при его изменении во время сеанса. Я открываю файл trackLogNum.txt и записываю туда раздел 5 NUMBER (переменная logNum) структуры имени файла .log, то есть 127.0.0.1,12345.log
Есть ли способ реализовать кнопку в этом коде, чтобы просмотреть файлы .log в каталоге, а затем выбрать и загрузить самый последний, вместо того, чтобы записывать каждый раз имя файла во внешнем trackLogNum.txt
Я думаю, что это была бы идеальная функция, которая автоматически загружает новейший файл .log (как я вижу в динамической загрузке изображений в слайд-шоу, которые часто имеют кнопки навигации для перехода к первому и последнему элементу) , но они сказали, что это невозможно без использования PHP или Flex. Как вы заметили в коде, это локальное приложение, ни один сервер не работает.
Заранее благодарю за помощь.
var reload:Timer = new Timer(5000, 1);
reload.addEventListener(TimerEvent.TIMER, onTimer);
//--------------------
var logNumLoader:URLLoader = new URLLoader();
logNumLoader.dataFormat=URLLoaderDataFormat.VARIABLES;
logNumLoader.addEventListener(Event.COMPLETE, loadedLogNum);
logNumLoader.load(new URLRequest("trackLogNum.txt"));
var _logNum:String;
function loadedLogNum(e:Event):void {
trace(e.target.data.logNum);
_logNum = e.target.data.logNum;
loadTracks();
}
//--------------------
var tracksLoader:URLLoader = new URLLoader();
tracksLoader.addEventListener(Event.COMPLETE,onTracksLoaded);
tracksLoader.addEventListener(IOErrorEvent.IO_ERROR,onTracksError);
tracksLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,onTracksError);
loadTracks();
function onTracksLoaded(e:Event):void {
trace("onTracksLoaded");
parseTracks(tracksLoader.data);
reload.start();
}
function onTimer(event:TimerEvent):void{
loadTracks();
}
function onTracksError(e:Event):void {
trace("onTracksError", e);
reload.start();
}
function loadTracks():void {
tracksLoader.load(new URLRequest("127.0.0.1,"+_logNum+".log"));
}
function parseTracks(data:String):void {
try {
var lines:Array = data.split("\n");
var lastLine:String = lines[lines.length - 2];
var artistAndSong:String = lastLine.substr(24).split(" - ").join("\n\n->");
trace(artistAndSong);
track_info.text = artistAndSong;
addChild(track_info);
} catch(e:Error) {
}
}