回答編集履歴

1

複数受け取って の一文を見逃していたため修正

2019/07/21 06:56

投稿

R.Mizukami
R.Mizukami

スコア1077

test CHANGED
@@ -1,27 +1,21 @@
1
- 可能すがご提示コードで実現できない、が正解だと思います。
1
+ createjs の Stage クラスは単独の canvas 要素と一対一対応するものと考えられるので、複数要素を対象にするの無理だと思います。
2
2
 
3
3
 
4
4
 
5
- `document#getElementsByClassName` は、`Elements` と複数形になっていることからわかる通り、返す値は `HTMLCollection` です。
6
-
7
- `createjs.Stage` は単独の `HTMLCanvasElement` 受け付けるので以下のいずれかの書き換えが必要です。
5
+ 対象の canvas の数だけ Stage オブジェクト生成し同じ操作を行うようにすれば同様結果にはなると思す。
8
6
 
9
7
 
10
8
 
11
9
  ```javascript
12
10
 
13
- // getElementsByClassName を利用する場合
11
+ // Stage のインスタンス含む配列を作成
14
12
 
13
+ const stages = [].map.call(
14
+
15
- new createjs.Stage(document.getElementsByClassName("test")[0])
15
+ document.getElementsByClassName('test'),
16
+
17
+ el => new createjs.Stage(el)
18
+
19
+ )
16
20
 
17
21
  ```
18
-
19
-
20
-
21
- ```javascript
22
-
23
- // 古いブラウザを気にしない場合
24
-
25
- new createjs.Stage(document.querySelector('.test'))
26
-
27
- ```