【问题标题】:why doesn't (if) work with no mistakes in code为什么(如果)不能在代码中没有错误的情况下工作
【发布时间】:2019-11-01 00:16:41
【问题描述】:

我的代码使用 AS3,(if-else)当我运行它时不会给我一个错误,但也没有给我我想要的(if)结果。 (tom) 对象必须是不可见的,如果触摸另一个称为 (food)else (tom) 的对象,则返回 ot 的位置 这个想法是(拖放)

var hits = 0;
tom.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
tom.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);

function mouseDownHandler(evt:MouseEvent):void {
   var object = evt.target;
   // we should limit dragging to the area inside the canvas
   object.startDrag();
}

function mouseUpHandler(evt:MouseEvent):void {
   var obj = evt.target;
   var target = obj.dropTarget;

   if (target == food && obj == tom) {
      obj.visible=false;
   } else {
      obj.x=1051.05;
      obj.y=135.05;
      obj.stopDrag();
   }
}

【问题讨论】:

  • 在这种情况下,您trace obj.dropTarget 是什么。如果条件为 false,则放置目标不是食物。
  • 不明白
  • 大多数编码语言都有一个日志系统,用于告诉您程序“看到”或“理解”了什么。在 AS3 中,此 log 称为 trace,您可以通过编写 trace( xyz ); 来记录,其中 xyz 会替换为您需要检查的内容,例如使用 trace( "The width is... " + obj.width);告诉您 obj 的宽度。当您trace("your mouse OBJ is.. " + obj); 时,如果输出选项卡中给出的答案不是your mouse OBJ is.. tom,那么您的IF/Else 代码将不会响应。

标签: actionscript-3 animate.css


【解决方案1】:

“当我运行时,它不会给我一个错误,但也不会给我想要的if 的结果。”

那是因为没有错误。您没有得到结果,因为您的 IF 条件从未达到。想想例子:if (obj == tom) 这里什么会使var obj 等于 var tom

解决方案:

我怀疑foodtom 是名字,对吧?尝试通过实例名称检查代码...

function mouseUpHandler (evt:MouseEvent) :void 
{
    var obj = evt.target;
    var target = obj.dropTarget;

    if (target.name == "food" && obj.name == "tom") 
    {
      obj.visible = false;
    } 
    else 
    {
      obj.x = 1051.05;
      obj.y = 135.05;
      obj.stopDrag();
    }
}

【讨论】:

    猜你喜欢
    • 2015-09-06
    • 2019-02-27
    • 1970-01-01
    • 2015-09-17
    • 2013-10-17
    • 1970-01-01
    • 2017-10-03
    • 2013-08-25
    • 2020-03-07
    相关资源
    最近更新 更多