2011/11/29

ActionScript 3.0でマウスオーバー時に色を写真にをかぶせてやるような処理

ActionScript 3.0でマウスオーバーで色を写真にかぶせてやるような処理です。マニュアル見てみると結構難しそう。。。

flash.geom.ColorTransform (ActionScript 3.0)

ただこれ、意外と簡単です。ようはRGBを255で割ってやれば良いです。例えば#806243の色のレイヤーを透過度85%で被せたい、というような場合。#806243はRGBにすると128,98,67です。

mc.addEventListener(MouseEvent.MOUSE_OVER, colorLayer);
function colorLayer_i(event:MouseEvent):void {
	var _target:MovieClip = MovieClip(event.currentTarget);
	var colorTransForm:ColorTransform = new ColorTransform(0.5,0.38,0.26,0.85);
	_target.transform.colorTransform = colorTransForm;
}

128 / 255 = 0.5
98 / 255 = 0.38
67 / 255 = 0.26

というような具合でColorTransformに代入してやれば宜しい。0.85は透過度ですね。これで割と写真に綺麗に色がかぶります。ちなみに、マウスアウトした時に色を戻したいみたいな場合。

mc.addEventListener(MouseEvent.MOUSE_OUT, removeLayer);
function removeLayer(event:MouseEvent):void {
var _target:MovieClip = MovieClip(event.currentTarget);
var colorTransForm:ColorTransform = new ColorTransform(1,1,1,1);
_target.transform.colorTransform = colorTransForm;
}
[/php]

みたいに値を1に戻してやれば通常の写真に戻ります。

ひとり仕事: フリーランスという働き方
(2012-10-5)
売り上げランキング: 14,705
100円