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

回答編集履歴

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
  ```