問題タブ [hittest]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocoa - mouseDownの一番上にサブビューを表示します:そしてイベントを受信し続けます(ドラッグ用)
わかりました、基本的に私は一連のわずかに重なり合うサブビューを持つビューを持っています。サブビューがクリックされると、非常に単純な2つのライナーによって、(とりわけ)一番上に移動します。
これは正常に機能し、これを行うための「通常の」方法のようです。
問題は、ビューにドラッグロジックを導入しているため、に応答する必要があること-mouseDragged:
です。残念ながら、ビューはビュー階層から削除され、プロセスで再度追加されるため、ビューを前面に表示して同じマウスアクションでドラッグすることはできません。受信しますが、受信したり、後続のイベントmouseDown:
を受信したりすることはありません。mouseDragged:
2回目のクリックではビュー階層のジャグリングが行われないため、マウスを離してビューをもう一度クリックした場合にのみドラッグされます。
ビューをこのように前景に移動し、後続-mouseDragged:
の-mouseUp:
イベントと後続のイベントを引き続き受信できるようにするためにできることはありますか?
私は、実際にイベントを受信する前に-hitTest:
ビューを前面に表示するために、スーパービューでオーバーライドし、mouseDownイベントをインターセプトするという考え方に沿って始めました。ここでの問題は、内部から、実際にヒットテストを実行しているイベントのタイプをどのように区別するかです。mouseMovedなどの他のマウスイベントのためにサブビューをフォアグラウンドに移動したくありません。-hitTest:
更新| 私のスーパービューでは、実際にこれを実行しましたが、-hitTest:
直接からイベントをトリガーする非常に悪いコードの臭いのように感じます。
これには2つの問題があります。最大の問題は、戻る前にアクションを実行し、完了-hitTest:
後にAppKitによって処理されたとおりに実行していることです。-hitTest:
2つ目は、合格するイベントがないため、nilを合格することです。イベントハンドラーが実際にはイベントデータを処理しないことがわかっているので、この場合は機能しますが、それは素晴らしいことではありません。別の方法は、ロジック全体をスーパービューに移動することでしたが、ここでの関心の分離はさらに悪化しているように感じます。
更新| この-hitTest:
ハックは壊れています...ビューの上部に何かをドラッグしているときなど、マウスをクリックしていないときにトリガーされます。まだこの問題の良い解決策を探しています。
答えは、ドラッグ操作中にビューがスーパービューを離れて再び入る方法を文字通り示すか、(おそらくよりエレガントに)ビューを前景に移動する別の方法です[view removeFromSuperview]; [superview addSubview:view ...];
。
c# - フォームをクリックできるのはなぜですか?
私は実験して、DWMとWindowsAeroを理解しようとしています。これまでのところ、私はほとんどそれを持っていると思いますが、奇妙な理由を除いて、フォームの厚い部分をクリックすると、クリックがそれを通り抜け、それを止める方法がわかりません。
flash - MCの子のhitTestObject
「playerP」というMCがあり、その中に7つの異なるMCがあります。子MCでテストを実行できないようで、常に[objectposition_2]が表示されます。
flash - Actionscript 3 で衝突しているオブジェクトを取得するにはどうすればよいですか?
オブジェクトが衝突しているオブジェクトを知る方法はありますか?... 衝突する他のオブジェクト (ムービークリップ) を識別できる「ボックス オブジェクト」をフラッシュで作成したいと考えています。たとえば、「フィールド」(エンジンまたはワールド) にボックスをドロップし、その中に何かを入れた場合、ボックスが衝突しているオブジェクトの種類をボックスに知らせたいと思います。箱がどのオブジェクトと衝突するか事前にわからないため、hitTestObject を使用できません。
私が達成したいことの大まかな疑似コードは次のとおりです。
上記の例の UNKNOWN_OBJECT は、必ずしも同じデータ型ではありません。
iphone - デュアル水平スクロール ビュー タッチの問題
私はこの問題に何週間も取り組んできましたが、まだ解決策がありません。助けてください。
画像付きの大きなスクロールビューがあります。各画像は画面幅で、ページングが有効になっています。
このスクロール ビューの下部に、ボタン付きの別のスクロール ビューがあります。各画像の各ボタン。画像ボタンを押すと、大きなスクロール ビューが画像にジャンプします。
たくさんの画像があるので、小さなスクロール ビューにたくさんのボタンがあります。
現在、大きなスクロールと小さなスクロールは正常に機能しており、ボタンも動作しています。
私の問題は、小さなスクロールの端から始まります。小さなスクロールの最後にいるとき (ただし、まだ大きなスクロールの真ん中にあります)、指を行き止まりに動かしたときに大きなスクロールを動かしたくありません。小さなスクロールを大きなスクロールから分離したいと言うことができますが、それでも彼をサブビューとして残します (大きなスクロールと一緒に移動したいため)。
小さなスクロール、ボタン、オーバーライド hitTest および touchesBegan/End をサブクラス化しようとしましたが、これまでのところ何もありません。
私の貸衣装が彼のやり方でこれを要求するので、私は本当に本当にイライラしています.
私は長い間グーグルで検索されてきましたが、何も見つかりません!
ヘルペッパー!
python - rect.center は rect プロパティを変更しますか?
ご挨拶、
pygame で作業しているプロジェクトで少し問題が発生しているようです。私が使用したオブジェクトの1つについて:
そしてそれを次のように割り当てました:
get_rect 関数のデフォルトの座標が (0,0) の値を与えることを理解しています。その結果、私は以下を使用しました:
スプライトを大まかに画面の中央に配置します。ただし、後で hitTest 関数で次のように呼び出します。
エラーが表示されます: 'tuple' オブジェクトには割り当て 'colliderect' がありません。
これは、self.rect.center の代入によって self.rect のプロパティが変更されるために発生しますか?
objective-c - NSCell サブクラスで hitTest が呼び出されない
私はNSCell
自分のプロジェクトのサブクラスに取り組んでいます。
このサブクラスは、状況によってはNSButtonCell
、ビューに次のように描画されます:
問題ありません。図面について、問題はボタンをクリックして応答します!
私はこれをやろうとしています:
と :
- (BOOL)startTrackingAt:(NSPoint) inView:(NSView *)
- (BOOL)trackMouse:(NSEvent *) inRect:(NSRect) ofView:(NSView *) untilMouseUp:(BOOL)
- (BOOL)continueTracking:(NSPoint) at:(NSPoint) inView:(NSView *)
- (void)stopTracking:(NSPoint) at:(NSPoint) inView:(NSView *) mouseIsUp:(BOOL)
しかし、hitTest などは決して呼び出されません...
呼び出されるだけ+ (BOOL)prefersTrackingUntilMouseUp
で、あまり役に立ちません...
何か案が ?^^
wpf - ヒット テストの画像コンテンツ
画像の内容をヒット テストしたい。そのために、メソッドを使用して作成BitmapImage
し、内部に描画します。を使用してヒット テストを行うと、画像内のすべてのポイントが true を返しますが、白いピクセルは false を返し、白以外のピクセルは true を返します。そのため、使用して白黒ピクセル形式に変換しましたが、機能しませんでした。助言がありますか?オブジェクト に対するヒットテストができればもっといいのですが。DrawingVisual
DrawingContext.DrawImage()
VisualTreeHelper.HitTest()
BitmapImage
FormatConvertedBitmap
ImageDrawing
c# - WPF の IsHitTestVisible に相当する WinForms
Label を子として持つボタンのオーバーライドがあります。ボタン コントロールに MouseEnter イベントと Leave イベントが関連付けられています。
マウスがラベルに入ると、ボタンのイベントは無効になります (これは当然のことです)。私の質問は、ラベルを実際に無効にすることなく、ラベルのヒット テストを無効にする方法です。
色を保持し、色を変更できるようにしたい (たとえば、ボタンの MouseEnter) が、マウスがラベルの上にあるときは、ボタンでヒット テストが考慮されます。
PS: ラベルに Mouse Enter と Leave を追加してそれらのケースを処理できることはわかっていますが、コントロールを自己完結型にして、パラメーターがその外側で変更された場合 (マウスの入力と終了の色)、コントロールが引き続き動作するようにしたいと考えています。適切に機能します。
vba - Excelでのオートシェイプのヒットテストとオクルージョンの解決
コードを使用して、VBAを使用したユーザー入力に基づいてExcelで多数のオートシェイプを描画しています。ただし、これらの形状の一部は互いに閉塞している可能性があるため、2回目のパスを実行して、どの形状が閉塞するかをヒットテストし、閉塞しなくなるまで微調整します。
したがって、基本的な擬似コードの概要は次のようになります。
誰かがこれを行うための何らかの方法を考えることができますか(またはこれを回避してこれを行う必要がないようにすることさえできます)?
RangeFrom関数を見てきましたが、あまり役に立たないようです(交差する図形ではなく、特定の画面座標で1つの図形のみを返します)。
助けてくれて本当にありがとうございます。