【问题标题】:hitTestObject, stopDrag stops drag on two movieclips even though function states one movieclip to stop draghitTestObject, stopDrag 停止拖动两个动画剪辑,即使函数声明一个动画剪辑停止拖动
【发布时间】:2023-03-18 21:06:01
【问题描述】:

我有一个函数,当movieclip1 被拖动并命中一条线时,它会停止拖动,但是它似乎停止了其他movieclip 上swf 中的整个拖动函数,即使它们没有在函数中调用。有人可以帮我解决这个问题吗?

问候 T

代码如下:

 function hitTest(event:Event):void
 {
 if (movieclip1.hitTestObject(line))
   {
 movieclip1.stopDrag();
   }
 else
   {

   }
 }

【问题讨论】:

  • 您发布代码很有帮助,但您可能应该发布更多内容,这样我们就不必对您的代码的编写方式做出假设。比如能不能贴出启动拖拽的代码?
  • 尝试用以下代码替换hitTest()函数中的代码:var displayObject:DisplayObject = DisplayObject(e.currentTarget); if(displayObject.hitTestObject) displayObject.stopDrag();
  • 另外,您可能应该将 hitTest() 函数的名称更改为 onClick()onMovieClipClick()clickHandler(),以遵守常见的 AS3 命名约定。

标签: actionscript-3 events flash-cs5 movieclip hittest


【解决方案1】:

你确定你的舞台上只有 一个movieclip1 实例吗?绝对要仔细检查。您是动态创建它们,还是在加载 SWF 时预加载它们?

如果它们已预加载:
也许在测试期间,您制作了一些快速副本,现在这些副本具有相同的名称并且它们的响应都相同。这是我的第一个猜测。

如果它们是动态加载的:
检查创建它们的功能。如果您在循环中命名它们(与上面类似的末尾有一个数字),请确保您正确地增加了末尾使用的数值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多