next2d-development-mcp 1.4.0 → 1.6.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.
- package/dist/references/player-display-objects.md +603 -0
- package/dist/references/player-events.md +366 -0
- package/dist/references/player-filters.md +338 -0
- package/dist/references/player-media-text.md +529 -0
- package/dist/references/player-overview.md +210 -0
- package/dist/references/player-tween.md +278 -0
- package/package.json +6 -6
- package/dist/references/player-specs.md +0 -3539
|
@@ -0,0 +1,366 @@
|
|
|
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
|
+
| `GamepadEvent` | `GAMEPAD_CONNECTED` | `"gamepadconnected"` | ゲームパッド接続 |
|
|
108
|
+
| `GamepadEvent` | `GAMEPAD_DISCONNECTED` | `"gamepaddisconnected"` | ゲームパッド切断 |
|
|
109
|
+
| `GamepadEvent` | `BUTTON_DOWN` | `"gamepadbuttondown"` | ボタン押下 |
|
|
110
|
+
| `GamepadEvent` | `BUTTON_UP` | `"gamepadbuttonup"` | ボタン解放 |
|
|
111
|
+
| `GamepadEvent` | `AXES_MOTION` | `"gamepadaxesmotion"` | スティック変化(閾値 0.1) |
|
|
112
|
+
| `FocusEvent` | `FOCUS_IN` | `"focusin"` | フォーカス取得 |
|
|
113
|
+
| `FocusEvent` | `FOCUS_OUT` | `"focusout"` | フォーカス喪失 |
|
|
114
|
+
| `WheelEvent` | `WHEEL` | `"wheel"` | ホイール操作 |
|
|
115
|
+
| `VideoEvent` | `PLAY` | `"play"` | 再生リクエスト |
|
|
116
|
+
| `VideoEvent` | `PLAYING` | `"playing"` | 再生開始 |
|
|
117
|
+
| `VideoEvent` | `PAUSE` | `"pause"` | 一時停止 |
|
|
118
|
+
| `VideoEvent` | `SEEK` | `"seek"` | シーク操作 |
|
|
119
|
+
| `JobEvent` | `UPDATE` | `"update"` | プロパティ更新 |
|
|
120
|
+
| `JobEvent` | `STOP` | `"stop"` | ジョブ停止 |
|
|
121
|
+
| `Event` | `COMPLETE` | `"complete"` | 処理完了(Tween/Loader) |
|
|
122
|
+
| `Event` | `ENTER_FRAME` | `"enterframe"` | 毎フレーム |
|
|
123
|
+
| `Event` | `ADDED` | `"added"` | コンテナに追加 |
|
|
124
|
+
| `Event` | `ADDED_TO_STAGE` | `"addedtostage"` | Stageに追加 |
|
|
125
|
+
| `Event` | `REMOVED` | `"removed"` | コンテナから削除 |
|
|
126
|
+
| `Event` | `REMOVED_FROM_STAGE` | `"removedfromstage"` | Stageから削除 |
|
|
127
|
+
| `Event` | `IO_ERROR` | `"ioerror"` | IOエラー |
|
|
128
|
+
| `Event` | `HTTP_STATUS` | `"httpstatus"` | HTTPステータス受信 |
|
|
129
|
+
|
|
130
|
+
## 使用例
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
import { PointerEvent, KeyboardEvent, Event } from "@next2d/events";
|
|
134
|
+
|
|
135
|
+
// ポインターイベント
|
|
136
|
+
button.addEventListener(PointerEvent.POINTER_DOWN, onPointerDown);
|
|
137
|
+
button.addEventListener(PointerEvent.POINTER_UP, onPointerUp);
|
|
138
|
+
|
|
139
|
+
// キーボードイベント
|
|
140
|
+
stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
|
|
141
|
+
|
|
142
|
+
// タイムラインイベント
|
|
143
|
+
movieClip.addEventListener(Event.ENTER_FRAME, onEnterFrame);
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## 定数がないイベント
|
|
147
|
+
|
|
148
|
+
一部のイベント(表示リスト、タイムライン、ロード関連など)は `Event` クラスの文字列リテラルを使用する。
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
import { Event } from "@next2d/events";
|
|
152
|
+
|
|
153
|
+
sprite.addEventListener(Event.ADDED_TO_STAGE, onAdded);
|
|
154
|
+
movieClip.addEventListener(Event.ENTER_FRAME, onFrame);
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
# 標準イベントタイプ
|
|
160
|
+
|
|
161
|
+
## 表示リスト関連
|
|
162
|
+
|
|
163
|
+
| イベント | 説明 |
|
|
164
|
+
|----------|------|
|
|
165
|
+
| `added` | DisplayObjectContainerに追加された |
|
|
166
|
+
| `addedToStage` | Stageに追加された |
|
|
167
|
+
| `removed` | DisplayObjectContainerから削除された |
|
|
168
|
+
| `removedFromStage` | Stageから削除された |
|
|
169
|
+
|
|
170
|
+
## タイムライン関連
|
|
171
|
+
|
|
172
|
+
| イベント | 説明 |
|
|
173
|
+
|----------|------|
|
|
174
|
+
| `enterFrame` | 各フレームで発生 |
|
|
175
|
+
| `frameConstructed` | フレーム構築完了 |
|
|
176
|
+
| `exitFrame` | フレーム離脱時 |
|
|
177
|
+
|
|
178
|
+
## ロード関連
|
|
179
|
+
|
|
180
|
+
| イベント | 説明 |
|
|
181
|
+
|----------|------|
|
|
182
|
+
| `complete` | ロード完了 |
|
|
183
|
+
| `progress` | ロード進捗 |
|
|
184
|
+
| `ioError` | IOエラー |
|
|
185
|
+
| `httpStatus` | HTTPステータス受信 |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
# ポインターイベント
|
|
190
|
+
|
|
191
|
+
PointerEventはマウス、ペン、タッチなどのポインターデバイスの操作を統一的に処理します。
|
|
192
|
+
|
|
193
|
+
| イベント | 定数 | 説明 |
|
|
194
|
+
|----------|------|------|
|
|
195
|
+
| `pointerDown` | `PointerEvent.POINTER_DOWN` | ボタンの押下開始 |
|
|
196
|
+
| `pointerUp` | `PointerEvent.POINTER_UP` | ボタンの解放 |
|
|
197
|
+
| `pointerMove` | `PointerEvent.POINTER_MOVE` | ポインター座標の変化 |
|
|
198
|
+
| `pointerOver` | `PointerEvent.POINTER_OVER` | ポインターがヒットテスト境界に入った |
|
|
199
|
+
| `pointerOut` | `PointerEvent.POINTER_OUT` | ポインターがヒットテスト境界を出た |
|
|
200
|
+
| `pointerLeave` | `PointerEvent.POINTER_LEAVE` | ポインターが要素領域を離れた |
|
|
201
|
+
| `pointerCancel` | `PointerEvent.POINTER_CANCEL` | ポインター操作がキャンセルされた |
|
|
202
|
+
| `doubleClick` | `PointerEvent.DOUBLE_CLICK` | ダブルクリック/タップが発生 |
|
|
203
|
+
|
|
204
|
+
```typescript
|
|
205
|
+
const { PointerEvent } = next2d.events;
|
|
206
|
+
|
|
207
|
+
sprite.addEventListener(PointerEvent.POINTER_DOWN, (event) => {
|
|
208
|
+
console.log("ポインターダウン:", event.localX, event.localY);
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
sprite.addEventListener(PointerEvent.POINTER_MOVE, (event) => {
|
|
212
|
+
console.log("ポインター移動:", event.stageX, event.stageY);
|
|
213
|
+
});
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
# キーボードイベント
|
|
219
|
+
|
|
220
|
+
| イベント | 定数 | 説明 |
|
|
221
|
+
|----------|------|------|
|
|
222
|
+
| `keyDown` | `KeyboardEvent.KEY_DOWN` | キー押下 |
|
|
223
|
+
| `keyUp` | `KeyboardEvent.KEY_UP` | キー解放 |
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
const { KeyboardEvent } = next2d.events;
|
|
227
|
+
|
|
228
|
+
stage.addEventListener(KeyboardEvent.KEY_DOWN, (event) => {
|
|
229
|
+
console.log("キーコード:", event.keyCode);
|
|
230
|
+
switch (event.keyCode) {
|
|
231
|
+
case 37: player.x -= 10; break; // 左矢印
|
|
232
|
+
case 39: player.x += 10; break; // 右矢印
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
# ゲームパッドイベント
|
|
240
|
+
|
|
241
|
+
Web Gamepad APIを通じてゲームコントローラーの入力を処理します。すべてのゲームパッドイベントは `stage` に対して発行されます。
|
|
242
|
+
|
|
243
|
+
> **ブラウザ要件**: ゲームパッドはページにフォーカスがある状態でコントローラーのボタンを押すことで認識されます(ブラウザのセキュリティ仕様)。
|
|
244
|
+
|
|
245
|
+
| イベント | 定数 | 説明 |
|
|
246
|
+
|----------|------|------|
|
|
247
|
+
| `gamepadconnected` | `GamepadEvent.GAMEPAD_CONNECTED` | ゲームパッドが接続・認識された |
|
|
248
|
+
| `gamepaddisconnected` | `GamepadEvent.GAMEPAD_DISCONNECTED` | ゲームパッドが切断された |
|
|
249
|
+
| `gamepadbuttondown` | `GamepadEvent.BUTTON_DOWN` | ボタンが押された |
|
|
250
|
+
| `gamepadbuttonup` | `GamepadEvent.BUTTON_UP` | ボタンが離された |
|
|
251
|
+
| `gamepadaxesmotion` | `GamepadEvent.AXES_MOTION` | スティック(軸)が変化した(閾値 0.1) |
|
|
252
|
+
|
|
253
|
+
## GamepadEvent プロパティ
|
|
254
|
+
|
|
255
|
+
| プロパティ | 型 | 説明 |
|
|
256
|
+
|-----------|------|------|
|
|
257
|
+
| `gamepadIndex` | number | ゲームパッドのインデックス番号 |
|
|
258
|
+
| `buttonIndex` | number \| undefined | ボタン番号(BUTTON_DOWN/UP 時) |
|
|
259
|
+
| `buttonValue` | number \| undefined | ボタンの押し具合 0.0〜1.0(BUTTON_DOWN/UP 時) |
|
|
260
|
+
| `axisIndex` | number \| undefined | 軸の番号(AXES_MOTION 時) |
|
|
261
|
+
| `axisValue` | number \| undefined | 軸の値 -1.0〜1.0(AXES_MOTION 時) |
|
|
262
|
+
|
|
263
|
+
```typescript
|
|
264
|
+
const { GamepadEvent } = next2d.events;
|
|
265
|
+
|
|
266
|
+
// 接続・切断
|
|
267
|
+
stage.addEventListener(GamepadEvent.GAMEPAD_CONNECTED, (event) => {
|
|
268
|
+
console.log(`ゲームパッド ${event.gamepadIndex} が接続されました`);
|
|
269
|
+
});
|
|
270
|
+
|
|
271
|
+
stage.addEventListener(GamepadEvent.GAMEPAD_DISCONNECTED, (event) => {
|
|
272
|
+
console.log(`ゲームパッド ${event.gamepadIndex} が切断されました`);
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
// ボタン操作
|
|
276
|
+
stage.addEventListener(GamepadEvent.BUTTON_DOWN, (event) => {
|
|
277
|
+
console.log(`ボタン ${event.buttonIndex} 押下 (value: ${event.buttonValue})`);
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
stage.addEventListener(GamepadEvent.BUTTON_UP, (event) => {
|
|
281
|
+
console.log(`ボタン ${event.buttonIndex} 解放`);
|
|
282
|
+
});
|
|
283
|
+
|
|
284
|
+
// スティック操作
|
|
285
|
+
stage.addEventListener(GamepadEvent.AXES_MOTION, (event) => {
|
|
286
|
+
console.log(`軸 ${event.axisIndex}: ${event.axisValue}`);
|
|
287
|
+
});
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
# フォーカスイベント
|
|
293
|
+
|
|
294
|
+
| イベント | 定数 | 説明 |
|
|
295
|
+
|----------|------|------|
|
|
296
|
+
| `focusIn` | `FocusEvent.FOCUS_IN` | フォーカスを受け取った |
|
|
297
|
+
| `focusOut` | `FocusEvent.FOCUS_OUT` | フォーカスを失った |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
# ホイールイベント
|
|
302
|
+
|
|
303
|
+
| イベント | 定数 | 説明 |
|
|
304
|
+
|----------|------|------|
|
|
305
|
+
| `wheel` | `WheelEvent.WHEEL` | マウスホイールが回転した |
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
# ビデオイベント
|
|
310
|
+
|
|
311
|
+
| イベント | 定数 | 説明 |
|
|
312
|
+
|----------|------|------|
|
|
313
|
+
| `play` | `VideoEvent.PLAY` | 再生がリクエストされた |
|
|
314
|
+
| `playing` | `VideoEvent.PLAYING` | 再生が開始された |
|
|
315
|
+
| `pause` | `VideoEvent.PAUSE` | 一時停止された |
|
|
316
|
+
| `seek` | `VideoEvent.SEEK` | シーク操作 |
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
# ジョブイベント
|
|
321
|
+
|
|
322
|
+
Tweenアニメーション用のイベントです。
|
|
323
|
+
|
|
324
|
+
| イベント | 定数 | 説明 |
|
|
325
|
+
|----------|------|------|
|
|
326
|
+
| `update` | `JobEvent.UPDATE` | プロパティが更新された |
|
|
327
|
+
| `stop` | `JobEvent.STOP` | ジョブが停止した |
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
# カスタムイベント
|
|
332
|
+
|
|
333
|
+
```typescript
|
|
334
|
+
const { Event } = next2d.events;
|
|
335
|
+
|
|
336
|
+
// カスタムイベントの定義
|
|
337
|
+
const customEvent = new Event("gameOver", true, true);
|
|
338
|
+
|
|
339
|
+
// イベントの発行
|
|
340
|
+
gameManager.dispatchEvent(customEvent);
|
|
341
|
+
|
|
342
|
+
// イベントのリッスン
|
|
343
|
+
gameManager.addEventListener("gameOver", (event) => {
|
|
344
|
+
showGameOverScreen();
|
|
345
|
+
});
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
# イベントの伝播
|
|
351
|
+
|
|
352
|
+
イベントは3つのフェーズで伝播します:
|
|
353
|
+
|
|
354
|
+
1. **キャプチャフェーズ**: rootからtargetへ(eventPhase = 1)
|
|
355
|
+
2. **ターゲットフェーズ**: targetで処理(eventPhase = 2)
|
|
356
|
+
3. **バブリングフェーズ**: targetからrootへ(eventPhase = 3)
|
|
357
|
+
|
|
358
|
+
```typescript
|
|
359
|
+
const { PointerEvent } = next2d.events;
|
|
360
|
+
|
|
361
|
+
// キャプチャフェーズで処理
|
|
362
|
+
parent.addEventListener(PointerEvent.POINTER_DOWN, handler, true);
|
|
363
|
+
|
|
364
|
+
// バブリングフェーズで処理(デフォルト)
|
|
365
|
+
child.addEventListener(PointerEvent.POINTER_DOWN, handler, false);
|
|
366
|
+
```
|
|
@@ -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
|
+
```
|