Pixi.js: [v4.4.0] DOM μš”μ†Œκ°€ μœ„μ— μžˆμ–΄λ„ Sprite의 Click μ΄λ²€νŠΈκ°€ μ „μ†‘λ©λ‹ˆλ‹€.

에 λ§Œλ“  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 λŒ“κΈ€

μˆ˜μ • ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ¬Έμ œλŠ” μ™„μ „νžˆ ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

Sprite μœ„μ˜ DOM μš”μ†Œλ₯Ό μ—¬λŸ¬ 번 ν΄λ¦­ν•˜λ©΄ 문제λ₯Ό μž¬ν˜„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

v4.4.1의 예 : https://jsfiddle.net/ku55deL6/9/

λ‹ˆμŠ€ :) λͺ¨ν—˜μ΄ κ³„μ†λ©λ‹ˆλ‹€!

μ’‹μ•„μš”, https://github.com/pixijs/pixi.js/pull/3800 은이 문제λ₯Ό μΌμœΌν‚€λŠ” 또 λ‹€λ₯Έ 문제λ₯Ό ν•΄κ²°ν•΄μ•Όν•©λ‹ˆλ‹€.

@andrewstart λΉŒλ“œλ‘œ λ°”μ΄μ˜¬λ¦°μ„ 확인할 수 μžˆμŠ΅λ‹ˆκΉŒ?

λ„€, μž‘λ™ν•©λ‹ˆλ‹€. λ…Έλž€μƒ‰ λ°°λ„ˆλ₯Ό λͺ‡ 번 클릭해도 ν† λΌλŠ” κ·ΈλŒ€λ‘œ μžˆμŠ΅λ‹ˆλ‹€.

μ–˜λ“€ μ•„!

버전 4.4.2둜 μ‹œλ„ν–ˆμ§€λ§Œ λͺ¨λ“  μƒν™©μ—μ„œ μ—¬μ „νžˆ μˆ˜μ •λ˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€. λ™μΌν•œ μ»¨ν…Œμ΄λ„ˆμ— 두 개의 μŠ€ν”„λΌμ΄νŠΈκ°€ 있으면 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ μŠ€ν”„λΌμ΄νŠΈκ°€ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆμ— 있으면이 λ¬Έμ œκ°€ 계속 λ°œμƒν•©λ‹ˆλ‹€.

μ΄κ²ƒμ„λ³΄μ‹­μ‹œμ˜€ : https://jsfiddle.net/FNevesFMQ/uwx24bm8/

이 μ‹œμ μ—μ„œ λ‚˜λŠ” 당신이 λ‚˜λ₯Ό μœ„ν•΄ μΌν•˜κΈ° μœ„ν•΄ μ½”λ“œμ— 였λ₯˜λ₯Ό λͺ°λž˜ λ„£κ³  μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€ .πŸ˜›
이번 주말에 λ³Ό κΈ°νšŒκ°€ μžˆμŠ΅λ‹ˆλ‹€. κ²ΉμΉ˜λŠ” μŠ€ν”„λΌμ΄νŠΈμ— λŒ€ν•œ 포인터 이벀트λ₯Ό 얻지 μ•Šλ„λ‘ν•˜λŠ” λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ μžˆλ‹€λŠ” 것을 μ•Œκ³  μžˆμœΌλ―€λ‘œ λ‹€λ₯Έ μ»¨ν…Œμ΄λ„ˆκ°€μ΄λ₯Ό λ³€κ²½ν•˜λŠ” 이유λ₯Ό μ‘°μ‚¬ν•΄μ•Όν•©λ‹ˆλ‹€.

λ‚΄ 앱이이 상황을 많이 μ‚¬μš©ν•˜κ³ , μ•ˆνƒ€κΉκ²Œλ„ 이둜 인해 λ§Žμ€ 버그가 λ°œμƒν•˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

이 λ¬Έμ œλŠ” https://d157l7jdn8e5sf.cloudfront.net/fix-interaction-issues/pixi.js둜 ν•΄κ²°λ˜μ—ˆμ§€λ§Œ λ‹€λ₯Έ λ¬Έμ œκ°€ μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. μ•Œκ³ μžˆλ‹€.

νŒ¨μΉ˜κ°€ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.
μ‚¬λ‘€λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€ (λͺ¨λ°”일, μ‚¬νŒŒλ¦¬).

  1. 두 개의 μ»¨ν…Œμ΄λ„ˆκ°€ 있으며, λ‘˜ λ‹€ λŒ€ν™” ν˜•μ΄κ³  μ„œλ‘œ κ²ΉμΉ©λ‹ˆλ‹€.
  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)

ν…ŒμŠ€νŠΈμ—μ„œ item1 및 item2 은 (λŠ”) item1 κ°€ item2 μžˆμŠ΅λ‹ˆλ‹€. 섀정은 μ–΄λ–»κ²Œ λ‹€λ¦…λ‹ˆ 까? λ°”μ΄μ˜¬λ¦° / νŽœμ„ μ œκ³΅ν•΄ μ£Όμ‹œκ² μŠ΅λ‹ˆκΉŒ?

@andrewstart , μˆ˜μ • 사항과 ν•¨κ»˜

https://github.com/pixijs/pixi.js/releases/tag/v4.4.3 μ—μ„œ 방금 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ£„μ†‘ν•©λ‹ˆλ‹€. 아직 μˆ˜μ •λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μž‘λ™ν•˜κΈ° 전에 μ œκ³΅ν–ˆμ§€λ§Œ λ‚΄ μ•±μ—μ„œλŠ” μ—¬μ „νžˆ 클릭 된 ν•­λͺ© μ•„λž˜μ—μžˆλŠ” ν•­λͺ©μ„ 클릭 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ§€κΈˆμ€ μ–΄λ–€ 상황이 λ°œμƒν•˜λŠ”μ§€ λͺ°λžμŠ΅λ‹ˆλ‹€ ..

저도 λ§ˆμ°¬κ°€μ§€μ§€λ§Œ 제 사건은 아직 ν•΄κ²°λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. jsfiddle을 μ€€λΉ„ν•˜λ €κ³ ν•©λ‹ˆλ‹€.

κ°μ‚¬ν•©λ‹ˆλ‹€ @hazardsoft , λ°”μ΄μ˜¬λ¦°μ€ μš°λ¦¬κ°€ μˆ˜μ • 사항을 ν™•μΈν•˜λŠ” κ°€μž₯ 쒋은 λ°©λ²•μž…λ‹ˆλ‹€.

@bigtimebuddy 더 λ§Žμ€ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. :) μƒν˜Έ μž‘μš© 문제λ₯Ό ν•΄κ²°ν•˜κ³  μžˆλ‹€λŠ” 사싀에 μ§„μ§€ν•˜κ²Œ λ†€λžμŠ΅λ‹ˆλ‹€. μ•…λͺ½μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€.

μ—¬κΈ°μ—μ„œ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€ : https://jsfiddle.net/FNevesFMQ/uwx24bm8/

μƒν˜Έ μž‘μš©μ΄ Sprite둜 μ„€μ •λ˜μ–΄ 있으면 μ œλŒ€λ‘œ μž‘λ™ν•˜μ§€λ§Œ μ»¨ν…Œμ΄λ„ˆμ— ν• λ‹Ήλ˜λ©΄ λ™μž‘μ΄ 잘λͺ»λ˜μ–΄ λͺ¨λ“  ν•­λͺ©μ„ λ™μ‹œμ— 클릭 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이것은 https://github.com/pixijs/pixi.js/pull/3877둜 (λ§ˆμ§€λ§‰μœΌλ‘œ) μˆ˜μ •λ©λ‹ˆλ‹€.

mouseup μ΄λ²€νŠΈμ™€ ν•¨κ»˜ Pixi 4.4.4의 λͺ‡ 가지 문제

1- https://jsfiddle.net/8qtz73hf/ (mousedownκ³Ό ν•¨κ»˜ μž‘λ™)
2- https://jsfiddle.net/sbxoya8x/(mouseupμ—μ„œ μž‘λ™ν•˜μ§€ μ•ŠμŒ)

λ§ˆμš°μŠ€κ°€ μΊ”λ²„μŠ€μ—μ„œ λ²—μ–΄λ‚œ 경우 (λ˜λŠ” λ‹€λ₯Έ div에 μ˜ν•΄ 차단 된 경우) mouseupoutside 이벀트λ₯Ό 보낼 수 μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ mouseup λ¦¬μŠ€λ„ˆλ₯Ό 창에 μ—°κ²°ν•˜λŠ” λΆ€μž‘μš©μ²˜λŸΌ λ³΄μž…λ‹ˆλ‹€. 이 경우 이벀트의 λŒ€μƒμ„ κ²€μ‚¬ν•˜μ—¬ λ‹€λ₯Έ μš”μ†Œκ°€ μ•„λ‹Œ μΊ”λ²„μŠ€μΈμ§€ ν™•μΈν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

# 3466κ³Ό 같은 λ¬Έμ œμΈκ°€μš”?
이 λ¬Έμ œμ— λŒ€ν•΄ μƒˆλ‘œμš΄ 문제λ₯Ό μ—΄μ–΄μ•Όν•©λ‹ˆκΉŒ?

μ•„λ‹ˆμš”, 그럴 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 직μž₯μ—μ„œ κ½€ λ°”λΉ μ„œ 아직 κ³ μΉ  κΈ°νšŒκ°€ μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

이 μŠ€λ ˆλ“œλŠ” λ‹«νžŒ ν›„ 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ μž κ²ΌμŠ΅λ‹ˆλ‹€. κ΄€λ ¨ 버그에 λŒ€ν•œ μƒˆ 문제λ₯Όμ—¬μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰