Список разделов › foobar2000 › Секреты foobar2000
seriousstas, плейлист {EX.UA} Rock, Blues, Rock & Roll:
речь про полый отказ загружать фото исполнителей , пока не перезапустишь сам Фубар .kgena_ua, seriousstas, проанализировал, так называемые "затыки" при загрузке картинок происходят для больших изображений
Ну с марковским такого не было ни разу ,тут дело не в скрипте, скорее всего.
Марковский не удаляет загруженные картинки, а использует повторно, может это тоже влияет.seriousstas:Ну с марковским такого не было ни разу
Я это первым делом попробовал ..Попробуй отключить удаление
В прошлых сообщениях я и предположил, что , как-раз чем дальше, тем больше у скрипта времени обработать запрос ...расположен в Нидерландах, так что я от него в 3 - 4 раза дальше нахожусь.
Тогда попробуй через прокси сервер (увеличь расстояние), если гипотеза верна, должно работать...seriousstas:В прошлых сообщениях я и предположил, что , как-раз чем дальше, тем больше у скрипта времени обработать запрос ...
"Работающий" плейлист загружает станции с задержкой (пусть и милисекундной)
function on_mouse_lbtn_dblclk (x,y){
if (text_scroll){
abc = abc == 1 ? 0 : 1;
window.SetProperty("abc", abc);
s_text = 0;
text = "";
get_b_text();
}
if (files[selected] && !text_scroll) WshShell.run( '"' + files[selected] + '"' );
}
Спасибо! работает !kgena_ua:Замените на
qqq= xmlhttp.status; window.Repaint();
Запрос xmlhttp регулярно отчитывается о своем состоянии через вызов функции xmlhttp.onreadystatechange. Состояние под номером 4 означает конец выполнения, поэтому функция-обработчик при каждом вызове проверяет - не настало ли это состояние.
Вообще, список состояний readyState такой:
•0 - Unitialized
•1 - Loading
•2 - Loaded
•3 - Interactive
•4 - Complete
Для HTTP-запросов - статусный код ответа сервера: 200 - OK, 404 - Not Found, и т.п
var readyState = 0;
var status = 0;
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
readyState = xmlhttp.readyState;
status = xmlhttp.status;
window.Repaint();
doc.open();
var div = doc.createElement("div");
div.innerHTML = xmlhttp.response
function on_metadb_changed() {
readyState = 0;
status = 0;
window.Repaint();
if (!metadb) return;
artist = Eval("%artist%");
if (artist != old_artis){
gr.GdiDrawText(readyState + " " + status, b_font, b_color, 15, 15, ww, wh, DT_LEFT | DT_WORD_ELLIPSIS );
Да . Это для тестирования.No_mad:переменная qqq нигде более не участвует, рудимент?
Нет и не загружает . tmp_Biography пустая при этом .seriousstas, не отображает. А загружает ?
Развалилась :)Тогда попробуй через прокси сервер (увеличь расстояние), если гипотеза верна, должно работать...
//WSH Seekbar
// For DarkOne v3.1
DT_LEFT = 0x00000000;
DT_CENTER = 0x00000001;
DT_RIGHT = 0x00000002;
DT_VCENTER = 0x00000004;
DT_SINGLELINE = 0x00000020;
MF_SEPARATOR = 0x00000800;
MF_STRING = 0x00000000;
function RGB(r,g,b){ return (0xff000000|(r<<16)|(g<<8)|(b)); }
var g_font = gdi.Font("DarkOne", 19, 0);
var g_font1 = gdi.Font("Arial Black", 7, 0);
var ui_type = window.InstanceType;
var g_drag = 0;
var g_drag_seek = 0;
var v_change = false;
var v_timer = null;
var percent = fb.TitleFormat("$max(0,$left($muldiv(%playback_time_seconds%,1000,%length_seconds%),$sub($len($muldiv(%playback_time_seconds%,1000,%length_seconds%)),1)))'.'$right($muldiv(%playback_time_seconds%,1000,%length_seconds%),1)'%' $if(%ispaused%,\u258c,\u25ba)");
var playtime = fb.TitleFormat("%playback_time%");
var length = fb.TitleFormat("%length%");
var timeremain = fb.TitleFormat("%playback_time_remaining%");
get_color();
function TimeFmt(t){
var zpad = function(n){
var str = n.toString();
return (str.length<2) ? "0"+str : str;
}
var h = Math.floor(t/3600); t-=h*3600;
var m = Math.floor(t/60); t-=m*60;
var s = Math.floor(t);
if(h>0) return h.toString()+":"+zpad(m)+":"+zpad(s);
return m.toString()+":"+zpad(s);
}
function on_paint(gr){
var ww = window.Width;
var wh = window.Height;
var txt;
var txt1;
var txt2;
var txt3;
var txt4;
var pos = 0;
var color_rgb = fb.PlaybackLength <= 0 ? back_rgb : ui_btntxtcol;
// var color2_rgb = fb.PlaybackLength <= 0 ? back_rgb : back2_rgb;
// var color3_rgb = fb.PlaybackLength <= 0 ? back2_rgb : font_rgb;
if(fb.PlaybackTime > 0){
if(g_drag){
pos = ww * g_drag_seek;
txt4 = "<< " + TimeFmt(g_drag_seek * fb.PlaybackLength) + " / " + TimeFmt(fb.PlaybackLength) + " >>";
}
else{
pos = ww * (fb.PlaybackTime / fb.PlaybackLength);
txt = percent.Eval();
txt1 = playtime.Eval();
txt2 = length.Eval();
txt3 = timeremain.Eval();
}
}else
{
txt4 = " PLAYBACK STOPPED ";
}
String.prototype.repeat = function(n) {return new Array(n + 1).join(this);}
gr.FillSolidRect (0, 0, ww, wh, ui_backcol);
gr.GdiDrawText("\u2598".repeat(30), g_font, back_rgb, 0, 0, ww, wh);
gr.GdiDrawText("\u2589".repeat(30), g_font, back_rgb, 0, 12, ww, wh);
gr.GdiDrawText("|".repeat(110), g_font, back2_rgb, 0, -14, ww, wh);
gr.GdiDrawText("|".repeat(110), g_font, font_rgb, 0, -14, pos, wh);
// gr.GdiDrawText("\u2589".repeat(30), g_font, font_rgb, 0, 12, pos, wh);
// gr.GdiDrawText("———".repeat(20), g_font, font_rgb, -30, 4, pos, wh);
gr.GdiDrawText("—", g_font, peak_rgb, pos - 10, 0, ww + pos, wh);
// ======SYMBOL======= // \u25CF , \u25A1 , \u25A0 //
// gr.GdiDrawText("\u25A0".repeat(66), g_font, back2_rgb, 0, -6, ww, wh);
gr.GdiDrawText("\u25A0".repeat(66), g_font, back2_rgb, 0, 4, ww, wh);
gr.GdiDrawText("\u25A0".repeat(66), g_font, back2_rgb, 0, 14, ww, wh);
// gr.GdiDrawText("\u25A0".repeat(66), g_font, font_rgb, 0, -6, pos, wh);
gr.GdiDrawText("\u25A0".repeat(66), g_font, font_rgb, 0, 4, pos, wh);
gr.GdiDrawText("\u25A0".repeat(66), g_font, font_rgb, 0, 14, pos, wh);
gr.GdiDrawText( "PERCENT", g_font1, color_rgb, 0, 30, ww, wh, DT_LEFT | DT_SINGLELINE);
gr.GdiDrawText( "ELAPSED", g_font1, v_change ? back_rgb : color_rgb, -ww/7.5, 30, ww, wh, DT_CENTER | DT_SINGLELINE);
gr.GdiDrawText( "TIME", g_font1, v_change ? back_rgb : color_rgb, ww/7, 30, ww, wh, DT_CENTER | DT_SINGLELINE);
gr.GdiDrawText( "REMAIN", g_font1, v_change ? back_rgb : color_rgb, 0, 30, ww, wh, DT_RIGHT | DT_SINGLELINE);
gr.GdiDrawText("\u2589".repeat(30), g_font, back_rgb, 0, 37, ww, wh);
gr.GdiDrawText( txt, g_font, font_rgb, 0, 37, ww, wh, DT_LEFT | DT_SINGLELINE);
if (v_change) gr.GdiDrawText("Volume " + fb.Volume.toFixed(2) + " dB", g_font, font_rgb, 0, 37, ww, wh, DT_RIGHT | DT_SINGLELINE);
else {
gr.GdiDrawText( txt1, g_font, font_rgb, -ww/7.5, 37, ww, wh, DT_CENTER | DT_SINGLELINE);
gr.GdiDrawText( txt2, g_font, font_rgb, ww/7.5, 37, ww, wh, DT_CENTER | DT_SINGLELINE);
gr.GdiDrawText( txt3, g_font, font_rgb, 0, 37, ww, wh, DT_RIGHT | DT_SINGLELINE);
gr.GdiDrawText( txt4, g_font, font_rgb, 0, 37, ww, wh, DT_CENTER | DT_SINGLELINE);
}
}
// ========MENU======== //
function on_mouse_rbtn_up(x, y) {
var _menu = window.CreatePopupMenu();
_menu.AppendMenuItem(MF_STRING, 1, "Default");
_menu.AppendMenuItem(MF_STRING, 2, "Blue");
_menu.AppendMenuItem(MF_STRING, 3, "Green");
_menu.AppendMenuItem(MF_STRING, 4, "Red");
_menu.AppendMenuItem(MF_STRING, 5, "White");
_menu.AppendMenuItem(MF_STRING, 6, "Yellow")
_menu.AppendMenuItem(MF_STRING, 7, "Grey")
_menu.CheckMenuRadioItem(1, 7, window.GetProperty("Color", 1));
_menu.AppendMenuItem(MF_SEPARATOR, 0, 0)
_menu.AppendMenuItem(MF_STRING, 8, "Properties...");
_menu.AppendMenuItem(MF_STRING, 9, "Configure...");
idx = _menu.TrackPopupMenu(x, y);
switch (idx) {
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
ch_color(idx);
break;
case 8:
window.ShowProperties();
break;
case 9:
window.ShowConfigure();
break;
}
_menu.Dispose();
return true
}
//=======================//
var font_rgb, back_rgb, back2_rgb, peak_rgb;
function get_color() {
ui_backcol = ui_type == 0 ? window.GetColorCUI(3) : window.GetColorDUI(1);
ui_textcol = ui_type == 0 ? window.GetColorCUI(0) : window.GetColorDUI(0);
ui_btntxtcol = ui_type == 0 ? window.GetColorCUI(2) : window.GetColorDUI(0);
if (window.GetProperty("Color") == 1) font_rgb = RGB(191,228,255), back_rgb = RGB(31,44,53), back2_rgb = RGB(57,68,76), peak_rgb = RGB(255,0,0); //Default
if (window.GetProperty("Color") == 2) font_rgb = RGB(115,173,229), back_rgb = RGB(28,44,55), back2_rgb = RGB(40,60,79), peak_rgb = RGB(255,0,0); //Blue = RGB(128,192,255) ; Blue2 = RGB(115,173,229)
if (window.GetProperty("Color") == 3) font_rgb = RGB(0,255,0), back_rgb = RGB(18,46,35), back2_rgb = RGB(5,80,5), peak_rgb = RGB(255,0,0); //Green
if (window.GetProperty("Color") == 4) font_rgb = RGB(255,0,0), back_rgb = RGB(40,27,35), back2_rgb = RGB(95,5,5), peak_rgb = RGB(255,255,255); //Red
if (window.GetProperty("Color") == 5) font_rgb = RGB(255,255,255), back_rgb = RGB(36,46,53), back2_rgb = RGB(91,91,91), peak_rgb = RGB(255,0,0); //White
if (window.GetProperty("Color") == 6) font_rgb = RGB(255,255,0), back_rgb = RGB(36,46,35), back2_rgb = RGB(95,95,5), peak_rgb = RGB(255,0,0); //Yellow
if (window.GetProperty("Color") == 7) font_rgb = RGB(63,100,127), back_rgb = RGB(28,44,55), back2_rgb = RGB(38,61,76), peak_rgb = RGB(255,0,0); //Grey
}
function getRed(color) {
return ((color >> 16) & 0xff);
}
function getGreen(color) {
return ((color >> 8) & 0xff);
}
function getBlue(color) {
return (color & 0xff);
}
var g_timer;
function ch_color(idx) {
get_color();
old_R = getRed(font_rgb);
old_G = getGreen(font_rgb);
old_B = getBlue(font_rgb);
window.SetProperty("Color", idx);
get_color();
new_R = getRed(font_rgb);
new_G = getGreen(font_rgb);
new_B = getBlue(font_rgb);
step_R = (new_R - old_R)/255; step_G = (new_G - old_G)/255; step_B = (new_B - old_B)/255;
g_timer = window.SetInterval(function() {
old_R = old_R + step_R; old_G = old_G + step_G; old_B = old_B + step_B;
R = old_R; G = old_G; B = old_B;
font_rgb = RGB(R,G,B)
window.Repaint();
if (
step_R < 0 && R <= new_R || step_G < 0 && G <= new_G || step_B < 0 && B <= new_B ||
step_R > 0 && R >= new_R || step_G > 0 && G >= new_G || step_B > 0 && B >= new_B
) {window.ClearInterval(g_timer); R = new_R; G = new_G; B = new_B; font_rgb = RGB(R,G,B)};
}, 5);
}
function on_mouse_lbtn_down(x,y){
g_drag = 1;
}
function on_mouse_lbtn_up(x,y){
if(g_drag){
g_drag = 0;
g_drag_seek = x / window.Width;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
fb.PlaybackTime = fb.PlaybackLength * g_drag_seek;
}
}
function on_mouse_move(x,y){
if(g_drag){
g_drag_seek = x / window.Width;
g_drag_seek = (g_drag_seek<0) ? 0 : (g_drag_seek<1) ? g_drag_seek : 1;
window.Repaint();
}
}
function on_mouse_wheel(step) {
fb.PlaybackTime += step;
}
function on_playback_seek(time) {
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
function on_playback_stop(){
window.Repaint();
}
function on_playback_starting(cmd, paused){
window.Repaint();
}
function on_playback_new_track(info){
window.Repaint();
}
function on_volume_change(val) {
var ww = window.Width;
var wh = window.Height;
if (v_timer) {
window.ClearTimeout(v_timer);
v_timer = null;
}
v_timer = window.SetTimeout(
function () {
window.RepaintRect(0, 0, ww, wh, DT_CENTER | DT_SINGLELINE);
window.ClearTimeout(v_timer);
v_timer = null;
v_change = false;
}, 1000);
v_change = true;
window.RepaintRect(0, 0, ww, wh, DT_CENTER | DT_SINGLELINE);
}
//EOF
AHAPXICT, привет.AHAPXICT:в режиме стоп не исчезает надпись регулировки громкости
function on_volume_change(val) {
if (v_timer) {
window.ClearTimeout(v_timer);
v_timer = null;
}
v_timer = window.SetTimeout( function () {
window.ClearTimeout(v_timer);
v_timer = null;
v_change = false;
window.Repaint();
}, 1000);
v_change = true;
window.Repaint();
}
function on_playback_time(time){
window.Repaint();
}
function on_playback_stop(){
window.Repaint();
}
var seek_timer;
function on_playback_time(time){
seek_timer && window.ClearInterval(seek_timer);
seek_timer = window.SetInterval(function() {
window.Repaint();
}, 50 );
}
function on_playback_stop() {
window.ClearInterval(seek_timer);
window.Repaint();
}
.... и что за мысль.AHAPXICT:Вы в своё время здесь озвучили
Спасибо! Сам проверял недавно на весь экран, пришлось увеличивать количество повторов, для масштабирования то что нужно!kgena_ua:gr.GdiDrawText("\u25A0".repeat(66), g_font, back2_rgb, 0, 4, ww, wh);
Моожет 66 заменить на WW поделенное на ширину символа.
только там, где это возможно, если можно "нарисовать" средствами WSH.AHAPXICT:Отказаться от картинок нахрен!
Вернуться в Секреты foobar2000