質問するログイン新規登録

回答編集履歴

1

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

2019/07/21 06:56

投稿

R.Mizukami
R.Mizukami

スコア1086

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