Код этого примера приведен ниже. Вы можете также просмотреть его, выбрав пункт меню View/Source или щелкнув правой клавишей и выбрав пункт View Source из выпавшего меню.
<html>
<body>
<script language="javascript">
window.onload=Init;
var x0, y0, rx, ry, w, h;
var fasa = 0;
var dfasa = 30;
var s = 70;
var z = 100;
var fi = new Array(6);
var rgb = new Array(
new Array(255, 0, 0),
new Array( 0, 0, 255),
new Array( 0, 255, 0),
new Array(255, 0, 255),
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)+y0
}
function NewScene(){
var fltr = obj.filters.light;
for (var i=0; i<6; i++){
GetXY(fi[i]);
fltr.addPoint(x, y, z, rgb[i][0], rgb[i][1], rgb[i][2], s);
}
}
function MoveLights(fs){
var fltr = obj.filters.light;
fsrad=fs*Math.PI/180;
for (var i=0; i<6; i++){
GetXY(fi[i]+fsrad);
fltr.moveLight(i, x, y, z, 1);
}
}
function next(){
fasa+=dfasa;
if (fasa> 360) fasa-=360;
for (var i=0; i<6; i++){
MoveLights(fasa);
window.status=""+fasa;
}
}
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;
NewScene();
timer=setInterval("next()",500);
}
</script>
<div id=obj style="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>
После инициации фильтра обработчик таймера меняет положения точечных источников, расположенных по окружности,
каждые полсекунды, сдвигая их по окружности на 30<sup>o</sup>.
</b></span>
</div>
</body>
</html>