File: filters/LDropShadowFilter.js
/** @language japanese
* DropShadowFilter クラスは、ドロップシャドウを表示オブジェクトに追加します。シャドウアルゴリズムは、ぼかしフィルターで使用するのと同じボックスフィルターに基づいています。ドロップシャドウのスタイルには複数のオプションがあり、内側シャドウ、外側シャドウ、ノックアウトモードなどがあります。。
* @class LDropShadowFilter
* @extends LObject
* @constructor
* @param {int} distance シャドウのオフセット距離(ピクセル単位)です。
* @param {int} angle シャドウの角度です。
* @param {int} color シャドウのカラーです。
* @param {int} blur ぼかし量。
* @example
* var bitmapdata = new LBitmapData(event.target);
* var bitmap = new LBitmap(bitmapdata);
* addChild(bitmap);
* var shadow = new LDropShadowFilter(5,45,"#000000");
* bitmap.filters = [shadow];
* @examplelink <p><a href="../../../api/LDropShadowFilter/index.html" target="_blank">実際のサンプルを見る</a></p>
* @since 1.6.0
* @public
*/
var LDropShadowFilter = (function () {
function LDropShadowFilter (distance, angle, color, blur) {
var s = this;
LExtends(s, LObject, []);
s.type = "LDropShadowFilter";
s.distance = distance ? distance : 0;
s.angle = angle ? angle : 0;
s.shadowColor = color ? color : "#000000";
s.shadowBlur = blur ? blur : 20;
s.setShadowOffset();
}
var p = {
setShadowOffset : function () {
var s = this;
var a = s.angle * Math.PI / 180;
s.shadowOffsetX = s.distance * Math.cos(a);
s.shadowOffsetY = s.distance * Math.sin(a);
},
ll_show : function () {
var s = this, c = LGlobal.canvas;
c.shadowColor = s.shadowColor;
c.shadowBlur = s.shadowBlur;
c.shadowOffsetX = s.shadowOffsetX;
c.shadowOffsetY = s.shadowOffsetY;
},
/** @language japanese
* シャドウのオフセット距離を設定する
* @method setDistance
* @param {int} distance シャドウのオフセット距離(ピクセル単位)です。
* @since 1.6.0
* @public
*/
setDistance : function (distance) {
this.distance = distance;
this.setShadowOffset();
},
/** @language japanese
* シャドウの角度を設定する
* @method setAngle
* @param {int} angle シャドウの角度です。
* @since 1.6.0
* @public
*/
setAngle : function (angle) {
this.angle = angle;
this.setShadowOffset();
},
/** @language japanese
* シシャドウのカラーを設定する
* @method setColor
* @param {int} color シャドウのカラーです。
* @since 1.6.0
* @public
*/
setColor : function (color) {
this.shadowColor = color;
},
/** @language japanese
* ぼかし量を設定する
* @method setBlur
* @param {int} blur ぼかし量です。
* @since 1.6.0
* @public
*/
setBlur : function (blur) {
this.shadowBlur = blur;
}
};
for (var k in p) {
LDropShadowFilter.prototype[k] = p[k];
}
return LDropShadowFilter;
})();