Pixi.js: [v4.4.0] Acara klik dari Sprite dikirim bahkan jika elemen DOM di atas

Dibuat pada 27 Feb 2017  ·  24Komentar  ·  Sumber: pixijs/pixi.js

Hei!

Sejak 4.4.0, saya mengamati bahwa ketika saya mengklik elemen DOM yang berada di atas sprite di kanvas pixi. Peristiwa klik sprite masih diaktifkan.

Saya membuat contoh cepat di sini:
v4.4.0
https://jsfiddle.net/ku55deL6/5/

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

Dan terima kasih teman-teman untuk pekerjaan luar biasa Anda!

💾 v4.x (Legacy) 🕷 Bug

Komentar yang paling membantu

Saya berharap 😛 aplikasi saya sering menggunakan situasi ini, dan sayangnya hal ini menyebabkan banyak bug bagi saya ..

Semua 24 komentar

Terima kasih atas perbaikan Anda. Tetapi masalahnya belum sepenuhnya diperbaiki.

Jika Anda mengklik beberapa kali pada elemen DOM di atas Sprite, saya dapat mereproduksi masalahnya.

Contoh dengan v4.4.1: https://jsfiddle.net/ku55deL6/9/

Bagus :) petualangan berlanjut!

Oke, https://github.com/pixijs/pixi.js/pull/3800 seharusnya memperbaiki masalah lain yang menyebabkan ini.

@andrewstart bisakah Anda memverifikasi biola itu dengan build Anda?

Ya, itu berhasil. Tidak peduli berapa kali saya mengklik spanduk kuning, kelinci tetap diam.

Hai teman-teman!

Saya mencoba dengan versi 4.4.2 dan tampaknya masih belum diperbaiki untuk setiap situasi .. jika saya memiliki dua sprite dalam wadah yang sama berfungsi dengan baik, tetapi jika sprite berada di wadah yang berbeda, masalah ini masih terjadi.

Lihat ini: https://jsfiddle.net/FNevesFMQ/uwx24bm8/

Pada titik ini saya pikir Anda menyelinap kesalahan ke dalam kode agar berhasil untuk saya 😛
Saya akan memiliki kesempatan untuk melihat-lihat akhir pekan ini. Saya tahu kami memiliki pengujian unit untuk memaksa tidak mendapatkan peristiwa penunjuk untuk sprite yang tumpang tindih, jadi saya harus menggali mengapa berbagai wadah mengubahnya.

Saya berharap 😛 aplikasi saya sering menggunakan situasi ini, dan sayangnya hal ini menyebabkan banyak bug bagi saya ..

Saya telah menyelesaikan masalah ini dengan https://d157l7jdn8e5sf.cloudfront.net/fix-interaction-issues/pixi.js , tetapi mungkin sebaiknya Anda menggunakannya untuk melihat apakah ada masalah lain yang tidak kami lakukan ' tidak tahu tentang.

Tambalan tidak berhasil untuk saya.
Kasusnya adalah sebagai berikut (seluler, safari):

  1. Ada 2 wadah, keduanya interaktif dan saling tumpang tindih
  2. ketika saya mengklik handler satu klik tertinggi ditembakkan di bawah juga

@hazardsoft Saat ini kami telah lulus tes untuk kondisi berikut:

    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)

Dalam pengujian item1 dan item2 tumpang tindih, dengan item1 berada di atas item2 . Apa perbedaan penyiapan Anda? Bisakah Anda menyediakan biola / pulpen?

@andrewstart , di mana saya dapat mengambil pixi.js dengan perbaikan Anda? Jadi saya dapat memverifikasi mereka terhadap kasus saya.

Maaf, tapi itu belum diperbaiki. Untuk contoh yang saya berikan sebelum berfungsi, tetapi di aplikasi saya masih memungkinkan klik pada item yang berada di bawah item yang diklik.

Saat ini, saya tidak mengerti yang mana kondisi itu terjadi ..

Hal yang sama untuk saya, kasus saya masih belum terselesaikan. Akan mencoba menyiapkan jsfiddle.

Terima kasih @hazardsoft , biola jelas merupakan cara terbaik bagi kami untuk memverifikasi perbaikan.

@bigtimebuddy lebih banyak bekerja untuk Anda, teman-teman :) Saya sangat kagum bahwa Anda memecahkan masalah interaksi, sepertinya mimpi buruk.

Di sini, temukan: https://jsfiddle.net/FNevesFMQ/uwx24bm8/

Jika interaksi disetel ke Sprite, ini berfungsi dengan baik, tetapi jika ditetapkan ke penampung, perilakunya salah, dan mungkin untuk mengklik semua item pada waktu yang sama.

Ini akan diperbaiki (akhirnya) dengan https://github.com/pixijs/pixi.js/pull/3877

Beberapa masalah lagi di Pixi 4.4.4 dengan acara mouseup

1- https://jsfiddle.net/8qtz73hf/ (bekerja dengan mousedown)
2- https://jsfiddle.net/sbxoya8x/ (tidak bekerja dengan mouseup)

Sepertinya efek samping dari melampirkan pendengar mouseup ke jendela, untuk memastikan bahwa kita dapat mengirim peristiwa mouseupoutside jika mouse tidak terpasang di kanvas (atau diblokir oleh div lain). Saya kira kita harus memeriksa target acara, dalam hal ini, untuk memastikan bahwa itu adalah kanvas dan bukan elemen lain.

apakah ini masalah # 3466 yang sama?
Haruskah saya membuka edisi baru untuk ini?

Tidak, Anda tidak perlu melakukannya. Saya sudah cukup sibuk bekerja, itulah sebabnya saya belum sempat memperbaikinya.

Utas ini telah dikunci secara otomatis karena tidak ada aktivitas baru-baru ini setelah ditutup. Silakan buka masalah baru untuk bug terkait.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

st3v0 picture st3v0  ·  3Komentar

courtneyvigo picture courtneyvigo  ·  3Komentar

madroneropaulo picture madroneropaulo  ·  3Komentar

distinctdan picture distinctdan  ·  3Komentar

softshape picture softshape  ·  3Komentar