Пример демонстрации фильтра light().
После инициации фильтра обработчик таймера меняет положения фокусов направленных (cone) источников, расположенных по периметру, каждые 2/10 секунды, сдвигая их по "лежачей восьмерке" на 15o.

Т.к. фильтр не имеет методов для измения направления луча света для направленных (конических) источников, то приходится постоянно обновлять сцену. Для этого каждый раз для сцены удаляются все источники света (метод clear()) и добавляются новые с новыми параметрами направленности лучей. Это создает впечатление системы прожекторов, освещающих сцену.

Код этого примера приведен ниже. Вы можете также просмотреть его, выбрав пункт меню View/Source или щелкнув правой клавишей и выбрав пункт View Source из выпавшего меню.

<html>
<body>
<script language="javascript">

window.onload=Init;
var x0, y0, rx, ry, w, h;
var fasa = 0;
var dfasa = 15;
var s = 7;
var intens = 50;
var z = 300;
var fi = new Array(6);
var xy = new Array(new Array(2),
                    new Array(2),
                    new Array(2),
                    new Array(2),
                    new Array(2),
                    new Array(2));
var rgb = new Array(new Array(  0,   0, 255),
		    new Array(255,   0,   0),
                    new Array(255,   0, 255),
                    new Array(  0, 255,   0),
                    new Array(255, 255,   0),
                    new Array(  0, 255, 255));
var x,y;
function GetXY(angle){
   x = rx*Math.cos(angle)+x0;
   y = ry*Math.sin(angle*2)+y0
}
function MoveLights(fs){
   var fltr = obj.filters.light;
   //удаляем все источники света
   fltr.clear();
   //добавляем рассеянный свет, чтобы было не так темно
   fltr.addAmbient(255, 255, 255, 50);
   fsrad=fs*Math.PI/180;

   //добавляем конические источники с новыми параметрами
   for (var i=0; i<6; i++){
      GetXY(fi[i]+fsrad);
      fltr.addCone(xy[i][0], xy[i][1], z, x, y,
              rgb[i][0], rgb[i][1], rgb[i][2], intens, s);
   }
}
function next(){
   for (var i=0; i<6; i++)
      MoveLights(fasa);
   fasa+=dfasa;
   if (fasa> 360) fasa-=360;
}
function Init(){
   w=obj.style.pixelWidth;
   h=obj.style.pixelHeight;
   x0 = w/2;
   y0 = h/2;
   rx = 3*x0/4;
   ry = 3*y0/4;
   for (var i=0; i<6; i++)
      fi[i] = i*60.0*Math.PI/180.0;
   xy[0][0]=0;  xy[0][1]=0;
   xy[1][0]=w;  xy[1][1]=0;
   xy[2][0]=0;  xy[2][1]=y0;
   xy[3][0]=w;  xy[3][1]=y0;
   xy[4][0]=0;  xy[4][1]=h;
   xy[5][0]=w;  xy[5][1]=h;
   timer=setInterval("next()",200);

}
</script>
<div id=obj style="float:left; overflow:hidden; width:300; height:300; filter:light();">
<span style="width:300; height:300; background-color:blue; color:yellow; font-size:16pt; text-align:center;">
<b>Пример демонстрации фильтра light().<br>
</b></span>
</div>
</pre>
</body>
</html>
Demo is created by sinisha (C) www.homepictures.ru