Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Смена картинки (https://javascript.ru/forum/misc/17010-smena-kartinki.html)

zeraid 02.05.2011 18:42

Смена картинки
 
Вот есть код:

draw2d.Server=function(ip)
{
	
 this.label = new draw2d.Label(1);
  this.label.setCanDrag(false);
  this.label.setSelectable(false);
  this.label.setBackgroundColor(new  draw2d.Color(255,255,255));
  this.label.setBorder(new draw2d.LineBorder(3));

 this.label2 = new draw2d.Label2("насос");
  this.label2.setCanDrag(false);
  this.label2.setSelectable(false);
  this.label2.setBackgroundColor(new  draw2d.Color(255,255,255));
  this.label2.setBorder(new draw2d.LineBorder(1));
  
  this.req==null;
  this.ip   = ip;
 
  //setInterval(function() {
  //if(color_dav_vod_k_1 == "red")
    //draw2d.ImageFigure.call(this,"objects_img/1_d41.png");
  //else
    draw2d.ImageFigure.call(this,"objects_img/1_d54.png");
   // }, 1000);
    
    xxx = 91;
    yyy = 59;
  this.setDimension(xxx,yyy);

}


Под конец кода создается объект с картинкой. Как мне сделать чтобы картинка менялась раз в сек в зависимости от значения color_dav_vod_k_1.

Если убрать то, что закоменченно то он будет ругаться на this.

В JS не силен поэтому могу ошибтся в использовании this. Думаю что кроме этой функции вам ничего не понадобится.

Просьба меня картинку методом Innerhtml не предлагать.

И если убрать комментирование кроме setinterval То работать все будет, но картинка будет та, которая соответсвует данному значению при добавлении объекта.

melky 02.05.2011 19:56

конецно будет ругаться

там то this указывает на window ( вроде )

попробуйте так
var that = this;

 setInterval(function() {

  if(color_dav_vod_k_1 == "red")

    draw2d.ImageFigure.call(that,"objects_img/1_d41.png");

  else
    draw2d.ImageFigure.call(that,"objects_img/1_d54.png");

    }, 1000);

zeraid 02.05.2011 20:21

да спасибо помогло. Но картинки всеравно не выводит.... Щас попробую разобратся.

zeraid 02.05.2011 20:23

без setinterval все рисует


Часовой пояс GMT +3, время: 14:50.