
Javascriptでcanvasを使用し、複数の画像を表示したり、消したり、一部の画像のみを表示させる処理を検討しています。
現在、画面を開いたときに複数の画像をロードし、画面に描画することはできたのですが、
今度は、その中から特定のひとつの画像をクリックした際に、他のすべての画像を削除(非表示)にし、その対象の画像のみを表示させたままにしたいのです。
調べると「ClearRect」というメソッドがあるそうなのですが、引数で座標を指定するようです。
考え方としては、この「ClearRect」を使い、画像ひとつひとつを削除していくという考えでいいのでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
え~~っと・・・
ご質問への回答からは少し外れているかもしれませんが、
「画像」とおっしゃっているものは、いわゆる<img src="~~">で表示するようなたぐいのものでしょうか。
それとも線や丸、四角などの描画図形でしょうか?
というのも、もしも前者であるのなら通常のHTML上で対応したほうが簡単そうに思えるからです。
canvasですと、表示された結果は全体で一つの画像のようになってしまいますので、ANo1様の回答にもありますように、クリックされた位置から対象となっている画像をスクリプトで算出・特定し、消去(または再描画)することになります。
画像がタイリングされているような場合は比較的簡単ですが、重なっていたり移動できたりすると、それなりに面倒な処理になると予想されます。
一方で、DOM要素であれば、そのまま個別のオブジェクトとして認識されていますので、クリックされた対象の特定も簡単ですし、個別に表示/非表示することも簡単だからです。
どうしてもcanvas上でないとならない理由があるのであれば、ANo1様の回答のような方法になろうかと思います。
なさりたいことの全体像がつかめていませんが、線や丸なども含めてオブジェクトとして扱えるSVGを利用するという方法もあるかもしれません。
http://ascii.jp/elem/000/000/585/585608/
No.1
- 回答日時:
……ふむ、その仕様なら1個1個消すよりも、クリックされた画像が何なのかを調べて画像全てを消した後にクリックされた画像を再描画する方が速そうだなぁ。
というか、画像と表示するか否かをセットにしたデータを持つようにして、何かアクションがあるたびに表示するか否かのデータを修正して canvas (再)描画をするようにし、canvas 描画時には画像描画を表示するとなっているもののみを描くように再描画したほうが、あとあと他の機能を追加するときに楽なような気がする。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# テキストボックスについて
-
VS Treeview のデザイン変更
-
C# DataGridView のCellPaintin...
-
Java、jPanelに描画する
-
p5.jsを使っているのですが
-
「タイプ初期化子が例外をスロ...
-
中学のクラス数
-
【sendkeysメソッドが動かずに...
-
インスタンス参照でアクセスで...
-
ヒグマを撃退
-
private static という変数の修飾
-
VBScriptからストアドプロシー...
-
String.containsの反対機能はあ...
-
どこからも呼ばれていない無意...
-
eclipse-Tomcatでのデバッグに...
-
サーブレットコンテキストの意...
-
javascriptのイベント処理につ...
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
ラジオボタンの選択判定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVAでの背景画像表示
-
SwingとEDT(イベントディスパッ...
-
VB.NET フォーム上に描いたグ...
-
Labelコントロールの背景をグラ...
-
C# DataGridView のCellPaintin...
-
Javaで文字の角度を変えて表示...
-
Java、jPanelに描画する
-
canvasで表示されてる画像を1...
-
javascriptのライブラリーで、...
-
画面のちらつきの原因が知りた...
-
JOGLで描画した立方体の中心座標
-
Java Script 色を塗れるプログ...
-
C# リストビューの特定のセルの...
-
VB.NETのSendMessageを教えてく...
-
Canvas等の図形を移動する時,直...
-
このプログラミングをどう組み...
-
ドラッグして矩形を描くには
-
GDI+で描画した画像を消去する...
-
重なった要素上でのイベントで...
-
getGraphics()の意味を教えて...
おすすめ情報