root/as3/gunyarapaint/branches/gunyarapaint/framework/src/org/libspark/gunyarapaint/framework/LayerBitmap.as

リビジョン 3438, 3.2 kB (コミッタ: hkrn, コミット時期: 3 年 前)

fixed name-space to almost all sources

Line 
1 package org.libspark.gunyarapaint.framework
2 {
3     import flash.display.Bitmap;
4     import flash.display.BitmapData;
5     import flash.display.IBitmapDrawable;
6     import flash.geom.ColorTransform;
7
8     public final class LayerBitmap extends Bitmap
9     {
10         public function LayerBitmap(bitmapData:BitmapData)
11         {
12             this.bitmapData = bitmapData;
13             name = "Layer" + index;
14         }
15        
16         /**
17          * レイヤーを複製する
18          *
19          * @param bitmapDataCopy レイヤー画像のデータも複製するかどうか
20          * @return 複製されたレイヤー (LayerBitmap)
21          */
22         public function clone(bitmapDataCopy:Boolean = true):LayerBitmap
23         {
24             var layer:LayerBitmap;
25             if (bitmapDataCopy) {
26                 layer = new LayerBitmap(bitmapData.clone());
27             }
28             else {
29                 layer = new LayerBitmap(bitmapData);
30             }
31             layer.alpha = alpha;
32             layer.blendMode = blendMode;
33             layer.index = index;
34             layer.locked = false;
35             layer.name = name;
36             layer.visible = visible;
37             return layer;
38         }
39        
40         /**
41          * ソース元からレイヤーを合成する
42          *
43          * @param source ソース元
44          * @param blendMode ブレンドモード
45          */
46         public function compositeFrom(source:IBitmapDrawable,
47                                       blendMode:String):void
48         {
49             bitmapData.draw(source, null, null, blendMode);
50         }
51        
52         /**
53          * レイヤーを BitmapData に描写する
54          *
55          * 現在のレイヤーの透明度及びブレンドモードを用いられて合成される。
56          *
57          * @param dest 描写先の BitmapData
58          */
59         public function compositeTo(dest:BitmapData):void
60         {
61             // 可視である場合のみ対象のBitmapDataに描写する
62             if (visible) {
63                 s_colorTransform.alphaMultiplier = alpha;
64                 dest.draw(bitmapData, null, s_colorTransform, blendMode);
65             }
66         }
67        
68         /**
69          * 指定された位置にバケツツールを適用する
70          *
71          * @param x 塗りつぶし先の X 座標
72          * @param y 塗りつぶし先の Y 座標
73          * @param color 塗りつぶす色
74          */
75         public function floodFill(x:Number, y:Number, color:uint):void
76         {
77             bitmapData.floodFill(x, y, color);
78         }
79        
80         /**
81          * 1 ピクセルを描写する
82          *
83          * @param x 描写先の X 座標
84          * @param y 描写先の Y 座標
85          * @param color 適用する色
86          */
87         public function setPixel(x:Number, y:Number, color:uint):void
88         {
89             bitmapData.setPixel32(x, y, color);
90         }
91        
92         public var index:uint;
93         public var locked:Boolean;
94         private static var s_colorTransform:ColorTransform = new ColorTransform(
95             1.0,
96             1.0,
97             1.0,
98             1.0,
99             0,
100             0,
101             0,
102             0
103         );
104     }
105 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。