放電エフェクト

| コメント(0) | トラックバック(0)

パフュームのライブ動画を見ていると、いろんな場面でかっこいいエフェクトに出会う。
今回は、その中の一つ「放電エフェクト」をつくってみた。

FLASH PLAYER

Get Adobe Flash player

以下、コード。
スクリプトをタイムライン弟1フレームに書くだけでよい。

 //GlowFilterインポート
import flash.filters.GlowFilter;
//放電分岐数
var discharge_num:Number=20;
//放電幅
var discharge_width:Number=30;
//配列
var xx:Array=new Array();
var yy:Array=new Array();
//GlowFilter設定
var param:GlowFilter=new GlowFilter();
param.color=0x00FFFF;
param.alpha=10;
param.blurX=35;
param.blurY=35;
param.strength=5;
param.quality=3;
param.inner=false;
param.knockout=false;
//空のMC生成
var view_mc:MovieClip=this.createEmptyMovieClip("view_mc",this.getNextHighestDepth());
//実行関数
function loop():Void{
 for(var i:Number=0;i<discharge_num;i++){
  xx[i]=Math.random()*discharge_width+Stage.width/2-discharge_width/2;
  yy[i]=i*Stage.height/discharge_num+Stage.height/discharge_num;
 }
 view_mc.clear();
 view_mc.moveTo(Stage.width/2,0);
 view_mc.lineStyle(3,0xFFFFFF);
 for(var i:Number=0;i<discharge_num;i++){
  view_mc.lineTo(xx[i],yy[i]);
 }
 view_mc.filters=[param];
}
setInterval(loop,33);

少し汎用性をもたせてみた。
変数「discharge」などの値を変えることで、放電の数を増やせるなど自由度を高めた。

FLASH PLAYER

Get Adobe Flash player

以下、コード。

 //GlowFilterインポート
import flash.filters.GlowFilter;
//放電数
var discharge:Number=3;
//放電分岐数
var discharge_num:Number=20;
//放電帯域
var discharge_range:Number=30;
//放電幅
var discharge_width:Number=2;
//配列宣言
var xx:Array=new Array();
var yy:Array=new Array();
//GlowFilter設定
var param:GlowFilter=new GlowFilter();
param.color=0xFFFF00;
param.alpha=10;
param.blurX=10;
param.blurY=10;
param.strength=2;
param.quality=3;
param.inner=false;
param.knockout=false;
//空のMC生成
var view_mc:MovieClip=this.createEmptyMovieClip("view_mc",this.getNextHighestDepth());
//実行関数
function loop():Void{
 for(var i:Number=0;i<discharge;i++){
  //二次元配列宣言
  xx[i]=new Array();
  for(var j:Number=0;j<discharge_num;j++){
   xx[i][j]=Math.random()*discharge_range+Stage.width/2-discharge_range/2;
   yy[j]=j*Stage.height/discharge_num+Stage.height/discharge_num;
  }
 }
 view_mc.clear();
 view_mc.moveTo(Stage.width/2,0);
 view_mc.lineStyle(discharge_width,0xFFFFFF);
 for(var i:Number=0;i<discharge;i++){
  for(var j:Number=0;j<discharge_num;j++){
   view_mc.lineTo(xx[i][j],yy[j]);
  }
 }
 view_mc.filters=[param];
}
setInterval(loop,33);
 

トラックバック(0)

トラックバックURL: http://www.ayabin.jp/mt5/mt-tb.cgi/193

コメントする

このブログ記事について

このページは、webmasterが2009年8月21日 10:00に書いたブログ記事です。

ひとつ前のブログ記事は「二次元配列」です。

次のブログ記事は「座標から角度を計算」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。