
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ランキング
-
Java、jPanelに描画する
-
VB.NET フォーム上に描いたグ...
-
SwingのpaintComponent(...
-
アクセスで他アプリから復帰し...
-
ドラッグして矩形を描くには
-
getGraphics()の意味を教えて...
-
C# DataGridView のCellPaintin...
-
エクセルVBAで、条件に一致する...
-
private static という変数の修飾
-
「タイプ初期化子が例外をスロ...
-
(vba)他のアプリケーションの右...
-
ラジオボタンの選択判定
-
servletからjspへオブジェクト...
-
Java初級 引数に適用できません
-
EXCEL VBAにて動的にCheckBOXを...
-
ウィンドウを最前面にできません
-
どこからも呼ばれていない無意...
-
SQLException getNextException()
-
VB.NETでMSComm が追加できず?
-
生成したインスタンスを削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NET フォーム上に描いたグ...
-
Java、jPanelに描画する
-
VB.NETのSendMessageを教えてく...
-
SwingとEDT(イベントディスパッ...
-
C# DataGridView のCellPaintin...
-
Javaで文字の角度を変えて表示...
-
JAVAでの背景画像表示
-
複数画像表示切り替え Visual c++
-
イベントディスパッチングスレ...
-
C# リストビューの特定のセルの...
-
iアプリ作成 画像を描画できない
-
SwingWorkerに関して
-
BMP画像を画像処理して連続に表...
-
canvasで表示されてる画像を1...
-
ドラッグして矩形を描くには
-
重なった要素上でのイベントで...
-
アクセスで他アプリから復帰し...
-
GDI+で描画した画像を消去する...
-
Androidで画像の中で指定した範...
-
株価チャートソフトを作るのに
おすすめ情報