duzzy, в какой момент это происходит. У меня пока такое не наблюдается (изменил цвет фона, тягаю туда - сюда).
Немного поменял (старое заремил):
Код:
function move_panel() {
if (!move) {
n_panel = panel;
n_ww = ww;
c_ww = ww;
if (dir_move == "right" ? n_x = 0 - n_ww : n_x = c_ww);
move = true;
window.SetProperty("Toolbar_status",0);
toolbar_open = window.GetProperty("Toolbar_status");
window.Repaint();
pss.GetPanel(n_panel).Show();
timer_anim = window.CreateTimerInterval(a_timer);
}
}
//===============
function on_timer(id) {
//====================ANIM n_x < 0 : n_x > 0 n_x >= 0 : n_x <= 0
if (timer_anim && id==timer_anim.ID){
if (dir_move == "left") {
c_x = c_x - step_c;
n_x = n_x - step_n;
}
if (dir_move == "right") {
c_x = c_x + step_c;
n_x = n_x + step_n;
}
// window.Repaint();
window.RepaintRect(0, y, ww, wh - y - 90);
// pss.GetPanel(c_panel).Show();
pss.GetPanel(c_panel).Move(c_x, y, ww, wh - y-90, true);
// pss.GetPanel(n_panel).Show();
pss.GetPanel(n_panel).Move(n_x, y, n_ww, wh - y-90, true);
if (dir_move == "right" ? n_x >= 0 : n_x <= 0) {
pss.GetPanel(c_panel).Show(false);
c_panel = n_panel;
c_x = 0;
n_x = 0;
timer_anim.Dispose();
CollectGarbage();
move = false;
}
window.SetProperty("panel", panel);
}
.
.
.
.
.
и нужно, чтобы step_c был на единицу больше чем step_n, тогда нет эффекта "цепляния панели за панель".