ColorMatrixFilter
Movieをモノクロのしてみたいと思い、ColorMatrixFilterを使ってみることにした。
たしかにこれは簡単だ。
package {
//video用
import flash.display.*;
import flash.media.*;
import flash.net.*;
import flash.event.*;
//ColorMatrixFilter
import flash.filters.ColorMatrixFilter;
public class monochromeVideo () {
/*
しばらくvideoを配置するところの下りがあります。
やってることはNetConnectionをつくり、NetStreamにあてる。
NetStreamを再生しようとする。
ハンドラより再生準備が整ったら
Videoオブジェクトを作りNetStreamをあてる。ステージに配置。
*/
var nc:NetConnection = new NetConnection();
//Constructor
function monochromeVideo() : void {
var filename = "alanSmithee.flv";
nc.connect(null);
ns = new NetStream(nc);
ns.play(filename);
//netStream用のhandlerを定義
ns.addEventListener(NetStatusEvent.NET_STATUS,netStatusHandler);
}
function netStatusHandler(event:NetStatusEvent) : void {
switch(event.info.code){
//NetStreamが開始できるとき
case "NetStream.Play.Start":
//videoオブジェクトを作成して配置
var video:Video = new Video();
addChild(video);
//netStreamを関連づける
video.attachNetStream(ns);
/*------------------------------
本番はここから
------------------------------*/
mono(video);
break;
}
}
function mono(obj) : void {
//新規フィルター作成
var filter:ColorMatrixFilter = new ColorMatrixFilter();
//フィルターの詳細 (白黒)
filter.matrix = [
1/3, 1/3, 1/3, 0, 0,
1/3, 1/3, 1/3, 0, 0,
1/3, 1/3, 1/3, 0, 0,
0, 0, 0, 1, 0
];
//フィルターをあてる
obj.filters = [filter];
}
}
}
あまりクラスにする意味のない書き方だけどAS初心者なのでゆるしてください。
つまり、オブジェクトがたとえVideoだったとしてもfilterを当ててしまえば終わり。
Flashすげーよ。javascriptやってて良かった。ActionScriptがなんとなくかける!
ちなみにこの動画はもとから白黒。