【问题标题】:EaselJS mouse / touch events not being triggeredEaselJS鼠标/触摸事件没有被触发
【发布时间】:2013-07-09 16:37:51
【问题描述】:

我正在努力让任何鼠标事件与最新的 easeljs 库 (easeljs-0.6.1.min.js) 一起使用。

我正在使用 TypeScript(它的定义似乎是最新的)。

我的舞台、容器等设置如下:

stage = new createjs.Stage("gameCanvas");
container = new createjs.Container();
stage.addChild(container);
createjs.Touch.enable(stage);

然后我的实体相关代码如下所示:

Egg.prototype.wireUpEggForMovement = function () {
    Game.get().container.addChild(this.bitmap);

    this.bitmap.mousedown = function (evt) {
        var o = evt.target;

        Game.get().container.addChild(this.bitmap);
        var offset = { x: o.x - evt.stageX, y: o.y - evt.stageY };
        this.gamePosition = new Point(offset.x, offset.y);

        evt.onMouseMove = function (ev) {
            o.x = ev.stageX + offset.x;
            o.y = ev.stageY + offset.y;
        };
    };
    this.bitmap.mouseover = function (evt) {
        var o = evt.target;
        o.scaleX = o.scaleY = 1.2;
    };
    this.bitmap.mouseout = function (evt) {
        var o = evt.target;
        o.scaleX = o.scaleY = 1;
    };
};

this.bitmapstagecontainer 都存在。

但是没有触发鼠标事件。

有什么想法吗?

【问题讨论】:

    标签: drag-and-drop easeljs createjs


    【解决方案1】:

    如果您使用mousedown-关键字,您必须像这样使用它:

    this.bitmap.addEventListener('mousedown', function...)
    

    http://www.createjs.com/Docs/EaselJS/classes/Bitmap.html#method_addEventListener

    或者:如果你想通过一个属性(不推荐使用)设置一个监听器函数,你必须使用.onPress = function... 来获取鼠标按下事件。但由于不推荐使用,我建议您使用addEventListener()

    【讨论】:

    • 请注意,要获得 mouseover/mouseout 事件,您需要在舞台上启用鼠标悬停。这是一项昂贵的操作,所以它是可选的。 stage.enableMouseOver()createjs.com/Docs/EaselJS/classes/…
    猜你喜欢
    • 2019-11-02
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多