Lightフィルタ:Cone光源(スポットライト)

Cone光源
- 設定された位置・強さ・色・広がりのスポットライトをオブジェクトに当てる
- (書式) .addCone(x,y,z,sx,sy,R,G,B,光度,光の広がり);
- x,y,z ・・・光源のX,Y,Z座標 sx,sy ・・・焦点の X,Y座標 R,G,B・・・0〜255の色値
Cone光源
Sample Source......................................................................>>>
<script language="JavaScript"><!--
function ConeGo(){ //Cone光源を当てる
pic.style.filter = "light()"; //lightフィルタの設定
pic.filters.item(0).addCone(10,-20,3,160,120,255,200,100,20,10);
}
function ConeClear(){ //フィルタの解除
pic.style.filter = "nothing";
}
var mX = 0; //光源の移動先x座標
var TimerL,TimerR;
var r,g,b; //光の色
function Spot(){
ClearSpot();
pic.style.filter = "light()";
pic.filters[0].addCone(180,-20,1,150,150,200,200,200,50,15);
SpotRight();
}
function SpotRight(){ //右移動のスポットライト
mX += 2; //光源のx座標を増やしていく
r=Math.floor(256*Math.random()); //ランダム色を作成
g=Math.floor(256*Math.random());
b=Math.floor(256*Math.random());
pic.filters[0].ChangeColor(0,r,g,b,1); //光の色を設定
pic.filters[0].moveLight(0,mX,100,0,1); //光源の移動
if(mX>=200){
clearTimeout(TimerR);
SpotLeft();
}else{
TimerR = setTimeout("SpotRight()",1);
}
}
function SpotLeft(){ //左移動のスポットライト
mX -= 2;
r=Math.floor(256*Math.random());
g=Math.floor(256*Math.random());
b=Math.floor(256*Math.random());
pic.filters[0].ChangeColor(0,r,g,b,1);
pic.filters[0].moveLight(0,mX,100,0,1);
if(mX <= 0){
clearTimeout(TimerL);
SpotRight();
}else{
TimerL = setTimeout("SpotLeft()",1);
}
}
function ClearSpot(){
clearTimeout(TimerL);
clearTimeout(TimerR);
pic.style.filter = "nothing";
}
//--></script>
</head>
<body>
<form>
Cone光源を--→<input type="button" value="当てる" onclick="ConeGo();">
<input type="button" value="消す" onclick="ConeClear();">
スポットライト(移動するCone光源)を--→<input type="button" value="当てる" onclick="Spot();">
<input type="button" value="消す" onclick="ClearSpot();"></p>
</form>
<img id="pic" src="../../java/jadata/ja02a.jpg" WIDTH="200" HEIGHT="150">
end(最終更新:12/11/10)