ActionScript3.0にはフィルターという機能がある。
ブラーやドロップシャドウをかける機能だ。
ドロップシャドウをかける
Spriteで作った図形にドロップシャドウを付ける場合は次のように書くことができる。
(冒頭のimport flash.filters.DropShadowFilter;も忘れないこと。)
1 2 3 4 5 6 7 8 9 |
var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFF0000,0.5); sp.graphics.drawCircle(0, 0, 60); sp.graphics.endFill(); var dropShadow:DropShadowFilter = new DropShadowFilter(); dropShadow.color = 0x0000FF; sp.filters = [ dropShadow]; this.addChild(sp); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
/* * flash.filters * http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filters/package-detail.html * */ package { import flash.display.Sprite; import flash.filters.DropShadowFilter; public class Main extends Sprite { public function Main() { trace("Hello world"); var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFF0000,0.5); sp.graphics.drawCircle(0, 0, 60); sp.graphics.endFill(); var dropShadow:DropShadowFilter = new DropShadowFilter(); dropShadow.color = 0x0000FF; sp.filters = [dropShadow]; sp.x = 200; sp.y = 200; this.addChild(sp); } } } |
ドロップシャドウと言っても、いろいろな設定がある。ここでは
dropShadow.color = 0x0000FF;
となっているので、青い影。
他にも影の角度や透明度などが設定できる。
詳しくはリファレンスを参照のこと。
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filters/DropShadowFilter.html
複数のフィルター
ドロップシャドウ以外にも、ブラーや、グローなど、いくつものフィルターがある。
http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filters/package-detail.html
一つのインスタンス(Spriteや画像など)に対して、複数のフィルターをかけることができる。ドロップシャドウをかけ、さらにブラーをかけたい場合、「sp.filters = [ dropShadow, blur]」と書く。
1 2 3 4 5 |
var dropShadow:DropShadowFilter = new DropShadowFilter(); dropShadow.color = 0x0000FF; var blur:BlurFilter = new BlurFilter(); blur.blurX = 16; sp.filters = [ dropShadow, blur]; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// forked from umhr's フィルターを使ってみよう /* * flash.filters * http://help.adobe.com/ja_JP/AS3LCR/Flash_10.0/flash/filters/package-detail.html * */ package { import flash.display.Sprite; import flash.filters.BlurFilter; import flash.filters.DropShadowFilter; public class Main extends Sprite { public function Main() { trace("Hello world"); var sp:Sprite = new Sprite(); sp.graphics.beginFill(0xFF0000,0.5); sp.graphics.drawCircle(0, 0, 60); sp.graphics.endFill(); var dropShadow:DropShadowFilter = new DropShadowFilter(); dropShadow.color = 0x0000FF; var blur:BlurFilter = new BlurFilter(); blur.blurX = 16; sp.filters = [ dropShadow, blur]; sp.x = 200; sp.y = 200; this.addChild(sp); } } } |
参考
FlashゲームPG講座 For AS3.0【DisplayObject クラスについて】
http://hakuhin.jp/as3/display_obj.html#DISPLAY_OBJ_10