Pixi.js: [v4.4.0] DOM要素が上にある場合でも、スプライトのクリックイベントが送信されます

作成日 2017年02月27日  ·  24コメント  ·  ソース: pixijs/pixi.js

ねえ!

4.4.0以降、pixiのキャンバス上のスプライトの上にあるDOM要素をクリックすると観察しました。 スプライトのクリックイベントは引き続き発生します。

私はここで簡単な例を作りました:
v4.4.0
https://jsfiddle.net/ku55deL6/5/

v4.3.5
https://jsfiddle.net/ku55deL6/4/

そして、あなたの素晴らしい仕事をみんなに感謝します!

💾 v4.x (Legacy) 🕷 Bug

最も参考になるコメント

😛私のアプリがこの状況を頻繁に使用することを望みますが、残念ながら、これにより多くのバグが発生します。

全てのコメント24件

修正していただきありがとうございます。 しかし、この問題は完全には修正されていません。

スプライトの上にあるDOM要素を複数回クリックすると、問題を再現できます。

v4.4.1の例: https ://jsfiddle.net/ku55deL6/9/

いいね:)冒険は続きます!

さて、 https://github.com/pixijs/pixi.js/pull/3800はこれを引き起こしていた別の問題を修正するはずです。

@andrewstartビルドでそのフィドルを確認できますか?

うん、それは動作します。 黄色いバナーを何度クリックしても、バニーはそのままです。

やあみんな!

バージョン4.4.2で試しましたが、すべての状況でまだ修正されていないようです。同じコンテナーに2つのスプライトがある場合は正常に機能しますが、スプライトが異なるコンテナーにある場合でも、この問題は発生します。

これを参照してください: https

この時点で、あなたは私のために仕事をするためにコードにエラーを忍び込んでいると思います😛
今週末、これを見てみる機会があります。 オーバーラップしているスプライトのポインターイベントを取得しないように強制する単体テストがあることはわかっているので、さまざまなコンテナーがそれを変更する理由を掘り下げる必要があります。

😛私のアプリがこの状況を頻繁に使用することを望みますが、残念ながら、これにより多くのバグが発生します。

パッチは私には機能しませんでした。
ケースは次のとおりです(モバイル、サファリ):

  1. インタラクティブで互いにオーバーラップする2つのコンテナがあります
  2. 一番上のワンクリックハンドラーをクリックすると、一番下のワンクリックハンドラーも起動します

@hazardsoft現在、次の条件のテストに合格しています。

    Stage    (both interactive and non-interactive)
    /   \
   parent1  parent2   (together, both interactive and non-interactive)
      /       \  
    item1     item2   (always interactive)
    Stage    (both interactive and non-interactive)
        /    \  
    item1    item2   (always interactive)

テストでは、 item1item2が重複し、 item1item2ます。 セットアップはどのように異なりますか? フィドル/ペンを提供してもらえますか?

@andrewstart 、修正を加えた

https://github.com/pixijs/pixi.js/releases/tag/v4.4.3でリリースされたばかりです

申し訳ありませんが、まだ修正されていません。 動作する前に示した例では、アプリでは、クリックされたアイテムの下にあるアイテムをクリックすることができます。

現時点では、その条件がどこにあるのかわかりませんでした。

私にとっても同じですが、私の場合はまだ修正されていません。 jsfiddleを準備しようとします。

@hazardsoftに感謝します。修正を確認するには、フィドルが間違いなく最善の方法です。

@bigtimebuddy皆さんのためにもっと仕事をしてください:)私はあなたが相互作用の問題を解決していることに真剣に驚いています、それは悪夢のように見えます。

ここで、それを見つけました: https

インタラクションがスプライトに設定されている場合は正常に機能しますが、コンテナに割り当てられている場合は動作が正しくなく、すべてのアイテムを同時にクリックする可能性があります。

これは(最終的に) https://github.com/pixijs/pixi.js/pull/3877で修正され

マウスアップイベントに関するPixi4.4.4のその他の問題

1- https://jsfiddle.net/8qtz73hf/ (マウスダウンで動作)
2- https://jsfiddle.net/sbxoya8x/(mouseupでは機能しません)

マウスがキャンバスから外れている(または別のdivによってブロックされている)場合にmouseupoutsideイベントを送信できるようにするために、mouseupリスナーをウィンドウにアタッチすることの副作用のように見えます。 イベントのターゲットを調べて、それがキャンバスであり、別の要素ではないことを確認する必要があると思います。

#3466と同じ問題ですか?
このために新しい問題を開く必要がありますか?

いいえ、する必要はありません。 私は仕事でかなり忙しいので、まだそれを修正する機会がありませんでした。

このスレッドは、閉じられた後に最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、新しい問題を開いてください。

このページは役に立ちましたか?
0 / 5 - 0 評価