「PhysicalPointクラス」を利用して、「マウスを追いかける2つのターゲット」みたいなものを作ってみた。
【製作過程】
ターゲットになるMCを用意して、リンケージ設定(識別子:target)。タイムライン弟1フレームに以下のコードを記述。flaファイルと同階層に「PhysicalPoint.as」を設置。
import flash.filters.GlowFilter;
var param:GlowFilter=new GlowFilter();
param.color=0x00FFFF;
param.alpha=0.9;
param.blurX=35;
param.blurY=35;
param.strength=5;
param.quality=3;
param.inner=false;
param.knockout=false;
var pt1:PhysicalPoint=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
var pt2:PhysicalPoint=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
function loop():Void{
pt1.setKasokudo((_root._xmouse-pt1.x)*10,(_root._ymouse-pt1.y)*10);
pt2.setKasokudo((pt1.x-pt2.x)*10,(pt1.y-pt2.y)*10);
syoki1={_x:pt1.x,_y:pt1.y};
syoki2={_x:pt2.x,_y:pt2.y};
var target1:MovieClip=_root.attachMovie("target","target1",1,syoki1);
target1.filters=[param];
var target2:MovieClip=_root.attachMovie("target","target2",2,syoki2);
target2.filters=[param];
}
setInterval(loop,33);
今度は2つのターゲットを線で結んでみる。
以下、コード。
import flash.filters.GlowFilter;
var param:GlowFilter=new GlowFilter();
param.color=0x00FFFF;
param.alpha=0.9;
param.blurX=35;
param.blurY=35;
param.strength=5;
param.quality=3;
param.inner=false;
param.knockout=false;
var pt1:PhysicalPoint=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
var pt2:PhysicalPoint=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
var pt3:PhysicalPoint=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
function loop():Void{
clear();
pt1.setKasokudo((_root._xmouse-pt1.x)*10,(_root._ymouse-pt1.y)*10);
pt2.setKasokudo((pt1.x-pt2.x)*10,(pt1.y-pt2.y)*10);
pt3.setKasokudo((pt2.x-pt3.x)*10,(pt2.y-pt3.y)*10);
syoki1={_x:pt1.x,_y:pt1.y};
syoki2={_x:pt2.x,_y:pt2.y};
syoki3={_x:pt3.x,_y:pt3.y};
var target1:MovieClip=_root.attachMovie("target","target1",1,syoki1);
target1.filters=[param];
var target3:MovieClip=_root.attachMovie("target","target3",3,syoki3);
target3.filters=[param];
_root.moveTo(pt1.x,pt1.y);
_root.lineStyle(1,0xFFFFFF);
_root.curveTo(pt2.x,pt2.y,pt3.x,pt3.y);
}
setInterval(loop,33);
実際に動いているのは、target1とtarget3で、target2のxy座標(pt2.xとpt2.y)は、コントロールポイントに設定している。

コメントする