Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript easeljs-容器鼠标启用不工作_Javascript_Easeljs - Fatal编程技术网

Javascript easeljs-容器鼠标启用不工作

Javascript easeljs-容器鼠标启用不工作,javascript,easeljs,Javascript,Easeljs,调用getObjectsUnderPoint时,获取容器时遇到问题。 根据easeljs的文档,当容器上的mouseEnabled属性设置为true时,调用getObjectsUnderPoint时,它应该返回容器对象,而不是其子对象 在示例代码中,我有两个容器,每个容器有两个子容器(shape和image)。它的拖放示例。在mouseup事件中,我正在检查两个容器是否重叠。但是当我调用stage.getObjectsUnderPoint时,它返回的[Shape,Image,Shape,Imag

调用
getObjectsUnderPoint
时,获取容器时遇到问题。 根据
easeljs
的文档,当容器上的
mouseEnabled
属性设置为
true
时,调用
getObjectsUnderPoint
时,它应该返回容器对象,而不是其子对象

在示例代码中,我有两个容器,每个容器有两个子容器(shape和image)。它的拖放示例。在mouseup事件中,我正在检查两个容器是否重叠。但是当我调用
stage.getObjectsUnderPoint
时,它返回的
[Shape,Image,Shape,Image]
数组。我所期待的是两个容器

我可能没有设置舞台或其他东西的其他属性

试图通过网络查找,没有运气

   var canvas = null;
    var stage = null;
    var update = false;

    function tick(){
          if(update){
                stage.update();
                update = false;
          }
    }

function init(){
    canvas = document.getElementById("mycanvas");
    stage = new createjs.Stage(canvas);
          createjs.Ticker.setFPS(60);
          createjs.Ticker.addListener(window);
          stage.enableMouseOver(36);

          var getContainer = function(cname, x, y, imageName){

                var container= new createjs.Container();
                container.mouseEnabled = true;
                container.onPress= function(event){
                      var target= event.target;

                      stage.addChild(target);

                      var offset = {
                            x: target.x - stage.mouseX,
                            y: target.y - stage.mouseY
                      };

                      event.onMouseMove = function (ev) {
                            target.x = ev.stageX + offset.x;
                            target.y = ev.stageY + offset.y;
                            update = true;
                      }

                      event.onMouseUp = function(ev){
                            var objects = stage.getObjectsUnderPoint(ev.stageX, ev.stageY);
                            event.stageX, event.stageY
                            objects.forEach(function(object){
                                  console.log('name: ' + object.name);
                            });
                      }
                };

                container.name = cname;

                var shape = new createjs.Shape();
                shape.graphics
                      .setStrokeStyle(10)
                      .beginFill('#f0f0f0')
                      .beginStroke("#000")
                      .drawCircle(x, y, 100);
                shape.name = cname + ' - shape';

                container.addChild(shape);

                var image = new Image();
                image.onload = function(event){
                      var bitmap = new createjs.Bitmap(image);
                      bitmap.regX = image.width/2;
                      bitmap.regY = image.height/2;
                      bitmap.x = x, bitmap.y = y;
                      bitmap.scaleX = bitmap.scaleY = 0.8;

                      bitmap.name = cname + ' - image';

                      container.addChild(bitmap);
                      update = true;
                };
                image.src = imageName;

                return container;

          };

          var container= getContainer("Original Container", 200, 300, 'cat1.png');

          var diffContainer = getContainer("Different Container", 600, 300, 'cat2.png');

          stage.addChild(container);
          stage.addChild(diffContainer);

          update = true;
}

任何帮助都将不胜感激。谢谢

我建议在社区论坛上发布CreateJS问题

您的样品按预期工作。在释放鼠标时,您正在检查鼠标下的对象。getObjectsUnderPoint将告诉您哪些对象将在单个x/y坐标处填充像素

如果要确定整个容器是否重叠,则需要执行更多操作,例如检查边界框(或执行更复杂的操作,如“圆->框碰撞”)

干杯