Android createjs-stage.mouseX

Android createjs-stage.mouseX,android,html,easeljs,createjs,Android,Html,Easeljs,Createjs,我注意到createjs最新版本(0.8.0和0.8.1)有bug。 如果您在画布外(stage)单击几次,然后尝试在其停止点内单击,则会显示您正确的stage.mouseX&mouseY。它总是显示“旧”的价值观 这个bug只在android上出现 (这里是bug)。在舞台外单击几次(灰色),然后单击舞台(黄色)。什么也没发生 (无错误,使用0.7.1) 有什么想法吗?有什么建议吗 我的代码: var stage; var canvas; var $width = 500; var $he

我注意到createjs最新版本(0.8.0和0.8.1)有bug。 如果您在画布外(stage)单击几次,然后尝试在其停止点内单击,则会显示您正确的stage.mouseX&mouseY。它总是显示“旧”的价值观

这个bug只在android上出现

(这里是bug)。在舞台外单击几次(灰色),然后单击舞台(黄色)。什么也没发生

(无错误,使用0.7.1)

有什么想法吗?有什么建议吗

我的代码:

var stage;
var canvas;

var $width  = 500;
var $height = 900;

var box;

window.onload = function()
{
    //fixCocoonEaselJSStageTouch();
    canvas = document.getElementById('canvas');
    ctx = canvas.getContext('2d');
    ctx.imageSmoothingEnabled = ctx.mozImageSmoothingEnabled = true;

    stage = new createjs.Stage(canvas);
    createjs.Touch.enable(stage);

    log("easejs version: " + createjs.EaselJS.version);

    stage.snapToPixelsEnabled  = true;
    stage.enableMouseOver(0);

    //stage.mouseEnabled = false;
    stage.mouseMoveOutside = true;

    //createjs.Touch.enable(stage);
    createjs.Ticker.setFPS(30);
    createjs.Ticker.addEventListener("tick", update);

    //createjs.Ticker.timingMode = createjs.Ticker.useFrames;

    window.addEventListener('resize', resize, false);
    resize();

    var s = new createjs.Shape();
    s.graphics.beginFill("#FFFF00").drawRect(0, 0, 630, 960);
    stage.addChild(s);

    box = new createjs.Container;
    var s = new createjs.Shape();
    s.graphics.beginFill("#FF0000").drawRect(0, 0, 50, 50);
    box.addChild(s);

    stage.addChild(box);

    stage.addEventListener("mousedown",function(){
        log(stage.mouseX)
    })
};

function update(e) {
    stage.update(e);

    box.x = stage.mouseX;
    box.y = stage.mouseY;
 };

function resize() {
    var gameArea = document.getElementById('gameArea');
    var widthToHeight = $width / $height;

    var newWidth = window.innerWidth;
    var newHeight = window.innerHeight;
    var newWidthToHeight = newWidth / newHeight;

    if (newWidthToHeight > widthToHeight) {
        // window width is too wide relative to desired game width
        newWidth = newHeight * widthToHeight;

        gameArea.style.height = (newHeight) + 'px';
        gameArea.style.width = newWidth + 'px';
    } else { // window height is too high relative to desired game height
        newHeight = newWidth / widthToHeight;
        gameArea.style.width = newWidth + 'px';
        gameArea.style.height = newHeight + 'px';
    }

    gameArea.style.marginTop = (-newHeight / 2) + 'px';
    gameArea.style.marginLeft = (-newWidth / 2) + 'px';
}
function log(o){
    console.log(o);
};

我找到了解决方案:我们可以使用event.stageX而不是stage.mouseX。