next2d-development-mcp 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,308 @@
1
+ # Next2D Player - イベントシステム
2
+
3
+ Next2D Playerは、W3C DOMイベントモデルと同様の3フェーズイベントフロー機構を採用しています。
4
+
5
+ ---
6
+
7
+ # EventDispatcher
8
+
9
+ すべてのイベント発行可能なオブジェクトの基底クラスです。
10
+
11
+ ## addEventListener(type, listener, useCapture, priority)
12
+
13
+ イベントリスナーを登録します。
14
+
15
+ ```typescript
16
+ const { PointerEvent } = next2d.events;
17
+
18
+ displayObject.addEventListener(PointerEvent.POINTER_DOWN, (event) => {
19
+ console.log("ポインターが押されました");
20
+ });
21
+
22
+ // キャプチャフェーズで受け取る
23
+ displayObject.addEventListener(PointerEvent.POINTER_DOWN, handler, true);
24
+
25
+ // 優先度を指定
26
+ displayObject.addEventListener(PointerEvent.POINTER_DOWN, handler, false, 10);
27
+ ```
28
+
29
+ ## removeEventListener(type, listener, useCapture)
30
+
31
+ ```typescript
32
+ displayObject.removeEventListener(PointerEvent.POINTER_DOWN, handler);
33
+ ```
34
+
35
+ ## removeAllEventListener(type, useCapture)
36
+
37
+ ```typescript
38
+ displayObject.removeAllEventListener(PointerEvent.POINTER_DOWN);
39
+ ```
40
+
41
+ ## hasEventListener(type) / willTrigger(type)
42
+
43
+ ```typescript
44
+ if (displayObject.hasEventListener(PointerEvent.POINTER_DOWN)) { /* ... */ }
45
+ if (displayObject.willTrigger(PointerEvent.POINTER_DOWN)) { /* ... */ }
46
+ ```
47
+
48
+ ## dispatchEvent(event)
49
+
50
+ ```typescript
51
+ const { Event } = next2d.events;
52
+ const event = new Event("customEvent");
53
+ displayObject.dispatchEvent(event);
54
+ ```
55
+
56
+ ---
57
+
58
+ # Event クラス
59
+
60
+ ## プロパティ
61
+
62
+ | プロパティ | 型 | 説明 |
63
+ |-----------|------|------|
64
+ | `type` | String | イベントタイプ |
65
+ | `target` | Object | イベント発行元 |
66
+ | `currentTarget` | Object | 現在のリスナー登録先 |
67
+ | `eventPhase` | Number | イベントフェーズ |
68
+ | `bubbles` | Boolean | バブリングするか |
69
+
70
+ ## メソッド
71
+
72
+ | メソッド | 説明 |
73
+ |----------|------|
74
+ | `stopPropagation()` | 伝播を停止 |
75
+ | `stopImmediatePropagation()` | 伝播を即座に停止 |
76
+
77
+ ---
78
+
79
+ # イベント定数の使用
80
+
81
+ イベントを `addEventListener` で登録する際は、文字列リテラルではなく必ず定数を使用する。
82
+
83
+ ```typescript
84
+ // NG: 文字列リテラル
85
+ sprite.addEventListener("pointerup", handler);
86
+
87
+ // OK: 定数を使用
88
+ sprite.addEventListener(PointerEvent.POINTER_UP, handler);
89
+ ```
90
+
91
+ **理由:** 定数を使用することで、タイプミスの防止、IDEによる補完・型チェック、リファクタリング時の安全性が得られる。
92
+
93
+ ## 全イベント定数一覧
94
+
95
+ | クラス | 定数 | 文字列値 | 説明 |
96
+ |--------|------|----------|------|
97
+ | `PointerEvent` | `POINTER_DOWN` | `"pointerdown"` | ポインター押下 |
98
+ | `PointerEvent` | `POINTER_UP` | `"pointerup"` | ポインター解放 |
99
+ | `PointerEvent` | `POINTER_MOVE` | `"pointermove"` | ポインター移動 |
100
+ | `PointerEvent` | `POINTER_OVER` | `"pointerover"` | ポインター進入 |
101
+ | `PointerEvent` | `POINTER_OUT` | `"pointerout"` | ポインター退出 |
102
+ | `PointerEvent` | `POINTER_LEAVE` | `"pointerleave"` | ポインター離脱 |
103
+ | `PointerEvent` | `POINTER_CANCEL` | `"pointercancel"` | ポインターキャンセル |
104
+ | `PointerEvent` | `DOUBLE_CLICK` | `"dblclick"` | ダブルクリック |
105
+ | `KeyboardEvent` | `KEY_DOWN` | `"keydown"` | キー押下 |
106
+ | `KeyboardEvent` | `KEY_UP` | `"keyup"` | キー解放 |
107
+ | `FocusEvent` | `FOCUS_IN` | `"focusin"` | フォーカス取得 |
108
+ | `FocusEvent` | `FOCUS_OUT` | `"focusout"` | フォーカス喪失 |
109
+ | `WheelEvent` | `WHEEL` | `"wheel"` | ホイール操作 |
110
+ | `VideoEvent` | `PLAY` | `"play"` | 再生リクエスト |
111
+ | `VideoEvent` | `PLAYING` | `"playing"` | 再生開始 |
112
+ | `VideoEvent` | `PAUSE` | `"pause"` | 一時停止 |
113
+ | `VideoEvent` | `SEEK` | `"seek"` | シーク操作 |
114
+ | `JobEvent` | `UPDATE` | `"update"` | プロパティ更新 |
115
+ | `JobEvent` | `STOP` | `"stop"` | ジョブ停止 |
116
+ | `Event` | `COMPLETE` | `"complete"` | 処理完了(Tween/Loader) |
117
+ | `Event` | `ENTER_FRAME` | `"enterframe"` | 毎フレーム |
118
+ | `Event` | `ADDED` | `"added"` | コンテナに追加 |
119
+ | `Event` | `ADDED_TO_STAGE` | `"addedtostage"` | Stageに追加 |
120
+ | `Event` | `REMOVED` | `"removed"` | コンテナから削除 |
121
+ | `Event` | `REMOVED_FROM_STAGE` | `"removedfromstage"` | Stageから削除 |
122
+ | `Event` | `IO_ERROR` | `"ioerror"` | IOエラー |
123
+ | `Event` | `HTTP_STATUS` | `"httpstatus"` | HTTPステータス受信 |
124
+
125
+ ## 使用例
126
+
127
+ ```typescript
128
+ import { PointerEvent, KeyboardEvent, Event } from "@next2d/events";
129
+
130
+ // ポインターイベント
131
+ button.addEventListener(PointerEvent.POINTER_DOWN, onPointerDown);
132
+ button.addEventListener(PointerEvent.POINTER_UP, onPointerUp);
133
+
134
+ // キーボードイベント
135
+ stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
136
+
137
+ // タイムラインイベント
138
+ movieClip.addEventListener(Event.ENTER_FRAME, onEnterFrame);
139
+ ```
140
+
141
+ ## 定数がないイベント
142
+
143
+ 一部のイベント(表示リスト、タイムライン、ロード関連など)は `Event` クラスの文字列リテラルを使用する。
144
+
145
+ ```typescript
146
+ import { Event } from "@next2d/events";
147
+
148
+ sprite.addEventListener(Event.ADDED_TO_STAGE, onAdded);
149
+ movieClip.addEventListener(Event.ENTER_FRAME, onFrame);
150
+ ```
151
+
152
+ ---
153
+
154
+ # 標準イベントタイプ
155
+
156
+ ## 表示リスト関連
157
+
158
+ | イベント | 説明 |
159
+ |----------|------|
160
+ | `added` | DisplayObjectContainerに追加された |
161
+ | `addedToStage` | Stageに追加された |
162
+ | `removed` | DisplayObjectContainerから削除された |
163
+ | `removedFromStage` | Stageから削除された |
164
+
165
+ ## タイムライン関連
166
+
167
+ | イベント | 説明 |
168
+ |----------|------|
169
+ | `enterFrame` | 各フレームで発生 |
170
+ | `frameConstructed` | フレーム構築完了 |
171
+ | `exitFrame` | フレーム離脱時 |
172
+
173
+ ## ロード関連
174
+
175
+ | イベント | 説明 |
176
+ |----------|------|
177
+ | `complete` | ロード完了 |
178
+ | `progress` | ロード進捗 |
179
+ | `ioError` | IOエラー |
180
+ | `httpStatus` | HTTPステータス受信 |
181
+
182
+ ---
183
+
184
+ # ポインターイベント
185
+
186
+ PointerEventはマウス、ペン、タッチなどのポインターデバイスの操作を統一的に処理します。
187
+
188
+ | イベント | 定数 | 説明 |
189
+ |----------|------|------|
190
+ | `pointerDown` | `PointerEvent.POINTER_DOWN` | ボタンの押下開始 |
191
+ | `pointerUp` | `PointerEvent.POINTER_UP` | ボタンの解放 |
192
+ | `pointerMove` | `PointerEvent.POINTER_MOVE` | ポインター座標の変化 |
193
+ | `pointerOver` | `PointerEvent.POINTER_OVER` | ポインターがヒットテスト境界に入った |
194
+ | `pointerOut` | `PointerEvent.POINTER_OUT` | ポインターがヒットテスト境界を出た |
195
+ | `pointerLeave` | `PointerEvent.POINTER_LEAVE` | ポインターが要素領域を離れた |
196
+ | `pointerCancel` | `PointerEvent.POINTER_CANCEL` | ポインター操作がキャンセルされた |
197
+ | `doubleClick` | `PointerEvent.DOUBLE_CLICK` | ダブルクリック/タップが発生 |
198
+
199
+ ```typescript
200
+ const { PointerEvent } = next2d.events;
201
+
202
+ sprite.addEventListener(PointerEvent.POINTER_DOWN, (event) => {
203
+ console.log("ポインターダウン:", event.localX, event.localY);
204
+ });
205
+
206
+ sprite.addEventListener(PointerEvent.POINTER_MOVE, (event) => {
207
+ console.log("ポインター移動:", event.stageX, event.stageY);
208
+ });
209
+ ```
210
+
211
+ ---
212
+
213
+ # キーボードイベント
214
+
215
+ | イベント | 定数 | 説明 |
216
+ |----------|------|------|
217
+ | `keyDown` | `KeyboardEvent.KEY_DOWN` | キー押下 |
218
+ | `keyUp` | `KeyboardEvent.KEY_UP` | キー解放 |
219
+
220
+ ```typescript
221
+ const { KeyboardEvent } = next2d.events;
222
+
223
+ stage.addEventListener(KeyboardEvent.KEY_DOWN, (event) => {
224
+ console.log("キーコード:", event.keyCode);
225
+ switch (event.keyCode) {
226
+ case 37: player.x -= 10; break; // 左矢印
227
+ case 39: player.x += 10; break; // 右矢印
228
+ }
229
+ });
230
+ ```
231
+
232
+ ---
233
+
234
+ # フォーカスイベント
235
+
236
+ | イベント | 定数 | 説明 |
237
+ |----------|------|------|
238
+ | `focusIn` | `FocusEvent.FOCUS_IN` | フォーカスを受け取った |
239
+ | `focusOut` | `FocusEvent.FOCUS_OUT` | フォーカスを失った |
240
+
241
+ ---
242
+
243
+ # ホイールイベント
244
+
245
+ | イベント | 定数 | 説明 |
246
+ |----------|------|------|
247
+ | `wheel` | `WheelEvent.WHEEL` | マウスホイールが回転した |
248
+
249
+ ---
250
+
251
+ # ビデオイベント
252
+
253
+ | イベント | 定数 | 説明 |
254
+ |----------|------|------|
255
+ | `play` | `VideoEvent.PLAY` | 再生がリクエストされた |
256
+ | `playing` | `VideoEvent.PLAYING` | 再生が開始された |
257
+ | `pause` | `VideoEvent.PAUSE` | 一時停止された |
258
+ | `seek` | `VideoEvent.SEEK` | シーク操作 |
259
+
260
+ ---
261
+
262
+ # ジョブイベント
263
+
264
+ Tweenアニメーション用のイベントです。
265
+
266
+ | イベント | 定数 | 説明 |
267
+ |----------|------|------|
268
+ | `update` | `JobEvent.UPDATE` | プロパティが更新された |
269
+ | `stop` | `JobEvent.STOP` | ジョブが停止した |
270
+
271
+ ---
272
+
273
+ # カスタムイベント
274
+
275
+ ```typescript
276
+ const { Event } = next2d.events;
277
+
278
+ // カスタムイベントの定義
279
+ const customEvent = new Event("gameOver", true, true);
280
+
281
+ // イベントの発行
282
+ gameManager.dispatchEvent(customEvent);
283
+
284
+ // イベントのリッスン
285
+ gameManager.addEventListener("gameOver", (event) => {
286
+ showGameOverScreen();
287
+ });
288
+ ```
289
+
290
+ ---
291
+
292
+ # イベントの伝播
293
+
294
+ イベントは3つのフェーズで伝播します:
295
+
296
+ 1. **キャプチャフェーズ**: rootからtargetへ(eventPhase = 1)
297
+ 2. **ターゲットフェーズ**: targetで処理(eventPhase = 2)
298
+ 3. **バブリングフェーズ**: targetからrootへ(eventPhase = 3)
299
+
300
+ ```typescript
301
+ const { PointerEvent } = next2d.events;
302
+
303
+ // キャプチャフェーズで処理
304
+ parent.addEventListener(PointerEvent.POINTER_DOWN, handler, true);
305
+
306
+ // バブリングフェーズで処理(デフォルト)
307
+ child.addEventListener(PointerEvent.POINTER_DOWN, handler, false);
308
+ ```
@@ -0,0 +1,338 @@
1
+ # Next2D Player - フィルター
2
+
3
+ Next2D Playerは、DisplayObjectに適用できる様々なビジュアルフィルターを提供しています。
4
+
5
+ ## フィルターの適用方法
6
+
7
+ ```typescript
8
+ const { Sprite } = next2d.display;
9
+ const { BlurFilter, DropShadowFilter, GlowFilter } = next2d.filters;
10
+
11
+ const sprite = new Sprite();
12
+
13
+ // 単一のフィルター
14
+ sprite.filters = [new BlurFilter(4, 4)];
15
+
16
+ // 複数のフィルター
17
+ sprite.filters = [
18
+ new DropShadowFilter(4, 45, 0x000000, 0.5),
19
+ new GlowFilter(0xff0000, 1, 8, 8)
20
+ ];
21
+
22
+ // フィルターの削除
23
+ sprite.filters = null;
24
+ ```
25
+
26
+ ## 利用可能なフィルター一覧
27
+
28
+ | フィルター | 説明 |
29
+ |-----------|------|
30
+ | BlurFilter | ぼかし効果 |
31
+ | DropShadowFilter | ドロップシャドウ効果 |
32
+ | GlowFilter | グロー効果 |
33
+ | BevelFilter | ベベル効果 |
34
+ | ColorMatrixFilter | カラーマトリックス変換 |
35
+ | ConvolutionFilter | 畳み込み効果 |
36
+ | DisplacementMapFilter | 変位マップ効果 |
37
+ | GradientBevelFilter | グラデーションベベル効果 |
38
+ | GradientGlowFilter | グラデーショングロー効果 |
39
+
40
+ ---
41
+
42
+ # BlurFilter
43
+
44
+ ぼかし効果を適用します。
45
+
46
+ ```typescript
47
+ new BlurFilter(blurX, blurY, quality);
48
+ ```
49
+
50
+ | プロパティ | 型 | デフォルト | 説明 |
51
+ |-----------|------|----------|------|
52
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
53
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
54
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
55
+
56
+ ---
57
+
58
+ # DropShadowFilter
59
+
60
+ ドロップシャドウ効果を適用します。内側シャドウ、外側シャドウ、ノックアウトモードなどのスタイルオプションがあります。
61
+
62
+ ```typescript
63
+ new DropShadowFilter(
64
+ distance, angle, color, alpha,
65
+ blurX, blurY, strength, quality,
66
+ inner, knockout, hideObject
67
+ );
68
+ ```
69
+
70
+ | プロパティ | 型 | デフォルト | 説明 |
71
+ |-----------|------|----------|------|
72
+ | alpha | number | 1 | シャドウのアルファ透明度(0〜1) |
73
+ | angle | number | 45 | シャドウの角度(-360〜360度) |
74
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
75
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
76
+ | color | number | 0 | シャドウの色(0x000000〜0xFFFFFF) |
77
+ | distance | number | 4 | シャドウのオフセット距離(-255〜255ピクセル) |
78
+ | hideObject | boolean | false | オブジェクトを非表示にするかどうか |
79
+ | inner | boolean | false | 内側シャドウにするかどうか |
80
+ | knockout | boolean | false | ノックアウト効果を適用するかどうか |
81
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
82
+ | strength | number | 1 | インプリントの強さ(0〜255) |
83
+
84
+ ---
85
+
86
+ # GlowFilter
87
+
88
+ グロー効果を適用します。
89
+
90
+ ```typescript
91
+ new GlowFilter(
92
+ color, alpha, blurX, blurY,
93
+ strength, quality, inner, knockout
94
+ );
95
+ ```
96
+
97
+ | プロパティ | 型 | デフォルト | 説明 |
98
+ |-----------|------|----------|------|
99
+ | alpha | number | 1 | グローのアルファ透明度(0〜1) |
100
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
101
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
102
+ | color | number | 0 | グローの色(0x000000〜0xFFFFFF) |
103
+ | inner | boolean | false | 内側グローにするかどうか |
104
+ | knockout | boolean | false | ノックアウト効果を適用するかどうか |
105
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
106
+ | strength | number | 1 | インプリントの強さ(0〜255) |
107
+
108
+ ---
109
+
110
+ # BevelFilter
111
+
112
+ ベベル効果を適用します。オブジェクトを3次元的に表現できます。
113
+
114
+ ```typescript
115
+ new BevelFilter(
116
+ distance, angle, highlightColor, highlightAlpha,
117
+ shadowColor, shadowAlpha, blurX, blurY,
118
+ strength, quality, type, knockout
119
+ );
120
+ ```
121
+
122
+ | プロパティ | 型 | デフォルト | 説明 |
123
+ |-----------|------|----------|------|
124
+ | angle | number | 45 | ベベルの角度(-360〜360度) |
125
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
126
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
127
+ | distance | number | 4 | ベベルのオフセット距離(-255〜255ピクセル) |
128
+ | highlightAlpha | number | 1 | ハイライトのアルファ透明度(0〜1) |
129
+ | highlightColor | number | 0xFFFFFF | ハイライトの色 |
130
+ | knockout | boolean | false | ノックアウト効果を適用するかどうか |
131
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
132
+ | shadowAlpha | number | 1 | シャドウのアルファ透明度(0〜1) |
133
+ | shadowColor | number | 0 | シャドウの色 |
134
+ | strength | number | 1 | インプリントの強さ(0〜255) |
135
+ | type | string | "inner" | ベベルの配置("inner"、"outer"、"full") |
136
+
137
+ ---
138
+
139
+ # ColorMatrixFilter
140
+
141
+ 4x5カラーマトリックス変換を適用します。明度、コントラスト、彩度、色相などを調整できます。
142
+
143
+ ```typescript
144
+ new ColorMatrixFilter(matrix);
145
+ ```
146
+
147
+ | プロパティ | 型 | デフォルト | 説明 |
148
+ |-----------|------|----------|------|
149
+ | matrix | number[] | 単位行列 | 4x5カラー変換用の20個の要素を持つ配列 |
150
+
151
+ デフォルト値(単位行列):
152
+ ```typescript
153
+ [
154
+ 1, 0, 0, 0, 0,
155
+ 0, 1, 0, 0, 0,
156
+ 0, 0, 1, 0, 0,
157
+ 0, 0, 0, 1, 0
158
+ ]
159
+ ```
160
+
161
+ ---
162
+
163
+ # ConvolutionFilter
164
+
165
+ マトリックス畳み込みフィルター効果を適用します。ぼかし、エッジ検出、シャープ、エンボス、ベベルなどの効果を実現できます。
166
+
167
+ ```typescript
168
+ new ConvolutionFilter(
169
+ matrixX, matrixY, matrix, divisor, bias,
170
+ preserveAlpha, clamp, color, alpha
171
+ );
172
+ ```
173
+
174
+ | プロパティ | 型 | デフォルト | 説明 |
175
+ |-----------|------|----------|------|
176
+ | alpha | number | 0 | 範囲外ピクセルのアルファ透明度(0〜1) |
177
+ | bias | number | 0 | マトリックス変換結果に加算するバイアス量 |
178
+ | clamp | boolean | true | イメージをクランプするかどうか |
179
+ | color | number | 0 | 範囲外ピクセルの置換色 |
180
+ | divisor | number | 1 | マトリックス変換中の除数 |
181
+ | matrix | number[] \| null | null | マトリックス変換に使用する値の配列 |
182
+ | matrixX | number | 0 | マトリックスのX次元(列数、0〜15) |
183
+ | matrixY | number | 0 | マトリックスのY次元(行数、0〜15) |
184
+ | preserveAlpha | boolean | true | アルファチャンネルを維持するかどうか |
185
+
186
+ ---
187
+
188
+ # DisplacementMapFilter
189
+
190
+ BitmapDataオブジェクトのピクセル値を使用して、オブジェクトの変位を実行します。
191
+
192
+ ```typescript
193
+ new DisplacementMapFilter(
194
+ bitmapBuffer, bitmapWidth, bitmapHeight,
195
+ mapPointX, mapPointY, componentX, componentY,
196
+ scaleX, scaleY, mode, color, alpha
197
+ );
198
+ ```
199
+
200
+ | プロパティ | 型 | デフォルト | 説明 |
201
+ |-----------|------|----------|------|
202
+ | alpha | number | 0 | 範囲外変位のアルファ透明度(0〜1) |
203
+ | bitmapBuffer | Uint8Array \| null | null | 変位マップデータを含むバッファ |
204
+ | bitmapHeight | number | 0 | 変位マップデータの高さ |
205
+ | bitmapWidth | number | 0 | 変位マップデータの幅 |
206
+ | color | number | 0 | 範囲外変位に使用する色 |
207
+ | componentX | number | 0 | X変位に使用するカラーチャンネル |
208
+ | componentY | number | 0 | Y変位に使用するカラーチャンネル |
209
+ | mapPointX | number | 0 | マップポイントのXオフセット |
210
+ | mapPointY | number | 0 | マップポイントのYオフセット |
211
+ | mode | string | "wrap" | フィルターモード("wrap"、"clamp"、"ignore"、"color") |
212
+ | scaleX | number | 0 | X変位結果の乗数(-65535〜65535) |
213
+ | scaleY | number | 0 | Y変位結果の乗数(-65535〜65535) |
214
+
215
+ ---
216
+
217
+ # GradientBevelFilter
218
+
219
+ グラデーションベベル効果を適用します。
220
+
221
+ ```typescript
222
+ new GradientBevelFilter(
223
+ distance, angle, colors, alphas, ratios,
224
+ blurX, blurY, strength, quality, type, knockout
225
+ );
226
+ ```
227
+
228
+ | プロパティ | 型 | デフォルト | 説明 |
229
+ |-----------|------|----------|------|
230
+ | alphas | number[] \| null | null | 各色に対応するアルファ値の配列(各値0〜1) |
231
+ | angle | number | 45 | ベベルの角度(-360〜360度) |
232
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
233
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
234
+ | colors | number[] \| null | null | グラデーションで使用するRGB 16進数カラー値の配列 |
235
+ | distance | number | 4 | ベベルのオフセット距離(-255〜255ピクセル) |
236
+ | knockout | boolean | false | ノックアウト効果を適用するかどうか |
237
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
238
+ | ratios | number[] \| null | null | 色分布比率の配列(各値0〜255) |
239
+ | strength | number | 1 | インプリントの強さ(0〜255) |
240
+ | type | string | "inner" | ベベルの配置("inner"、"outer"、"full") |
241
+
242
+ ---
243
+
244
+ # GradientGlowFilter
245
+
246
+ グラデーショングロー効果を適用します。
247
+
248
+ ```typescript
249
+ new GradientGlowFilter(
250
+ distance, angle, colors, alphas, ratios,
251
+ blurX, blurY, strength, quality, type, knockout
252
+ );
253
+ ```
254
+
255
+ | プロパティ | 型 | デフォルト | 説明 |
256
+ |-----------|------|----------|------|
257
+ | alphas | number[] \| null | null | 各色に対応するアルファ値の配列(各値0〜1) |
258
+ | angle | number | 45 | グローの角度(-360〜360度) |
259
+ | blurX | number | 4 | 水平方向のぼかし量(0〜255) |
260
+ | blurY | number | 4 | 垂直方向のぼかし量(0〜255) |
261
+ | colors | number[] \| null | null | グラデーションで使用するRGB 16進数カラー値の配列 |
262
+ | distance | number | 4 | グローのオフセット距離(-255〜255ピクセル) |
263
+ | knockout | boolean | false | ノックアウト効果を適用するかどうか |
264
+ | quality | number | 1 | ぼかしの実行回数(0〜15) |
265
+ | ratios | number[] \| null | null | 色分布比率の配列(各値0〜255) |
266
+ | strength | number | 1 | インプリントの強さ(0〜255) |
267
+ | type | string | "outer" | グローの配置("inner"、"outer"、"full") |
268
+
269
+ ---
270
+
271
+ # 使用例
272
+
273
+ ## ボタンのホバー効果
274
+
275
+ ```typescript
276
+ const { GlowFilter } = next2d.filters;
277
+
278
+ button.addEventListener("rollOver", () => {
279
+ button.filters = [new GlowFilter(0x00ff00, 0.8, 10, 10)];
280
+ });
281
+
282
+ button.addEventListener("rollOut", () => {
283
+ button.filters = null;
284
+ });
285
+ ```
286
+
287
+ ## 影付きテキスト
288
+
289
+ ```typescript
290
+ const { DropShadowFilter } = next2d.filters;
291
+
292
+ textField.filters = [
293
+ new DropShadowFilter(2, 45, 0x000000, 0.5, 2, 2)
294
+ ];
295
+ ```
296
+
297
+ ## 複合フィルター
298
+
299
+ ```typescript
300
+ const { GlowFilter, DropShadowFilter, BlurFilter } = next2d.filters;
301
+
302
+ sprite.filters = [
303
+ new GlowFilter(0x0088ff, 0.8, 15, 15, 2, 1, false),
304
+ new DropShadowFilter(4, 45, 0x000000, 0.6, 4, 4),
305
+ new BlurFilter(1, 1, 1)
306
+ ];
307
+ ```
308
+
309
+ ## カラーマトリックスによるグレースケール
310
+
311
+ ```typescript
312
+ const { ColorMatrixFilter } = next2d.filters;
313
+
314
+ const grayscaleMatrix = [
315
+ 0.299, 0.587, 0.114, 0, 0,
316
+ 0.299, 0.587, 0.114, 0, 0,
317
+ 0.299, 0.587, 0.114, 0, 0,
318
+ 0, 0, 0, 1, 0
319
+ ];
320
+
321
+ sprite.filters = [new ColorMatrixFilter(grayscaleMatrix)];
322
+ ```
323
+
324
+ ## グラデーショングロー効果
325
+
326
+ ```typescript
327
+ const { GradientGlowFilter } = next2d.filters;
328
+
329
+ sprite.filters = [
330
+ new GradientGlowFilter(
331
+ 4, 45,
332
+ [0xff0000, 0x00ff00, 0x0000ff],
333
+ [1, 1, 1],
334
+ [0, 128, 255],
335
+ 10, 10, 2, 1, "outer", false
336
+ )
337
+ ];
338
+ ```