HAKASHUN / manabi

manabi
14 stars 1 forks source link

iOS7 x iPhone4 x createjsでのhitTestの不具合 #43

Open HAKASHUN opened 10 years ago

HAKASHUN commented 10 years ago

iPhone4とiOS7(iPhon4Sとかは大丈夫)の組み合わせだけでおこる不具合が見つかりました。

Code Example

this.dummyBtn.addEventListener('mousedown', function(e){
    var target = this.btn; // must be Shape
    var point = target.globalToLocal(e.stageX, e.stageY);
    if(!target.hitTest(point.x, point.y)) {
        // Hit test is failed 
        return; 
    }
    // Hit test is success
});

上記のようなコードで、なぜかiPhone4 x iOS7だとHit testがうまくいかない。 すでにいくつかの文献も見つかったが、createjsのContainerクラスをoverrideしないと、うまく解決できないみたい...

参考文献1 参考文献2 参考文献3

HAKASHUN commented 10 years ago

結局、HTMLでcanvasの上にタップ用領域を配置して、対応することにした。 cross originとかの問題もあるし、できればcanvas内のオブジェクトにタッチイベントをattachしない方がよいかもしれない...

HAKASHUN commented 10 years ago

html側で対処しようとしてみたが、Androidでも正しいスタイルが保証されないと結構危ない...