代码之家  ›  专栏  ›  技术社区  ›  Ólafur Waage

当我在两个物体之间用镊子时,为什么我要用镊子呢?

  •  0
  • Ólafur Waage  · 技术社区  · 14 年前

    我有一个文本字段和一个精灵都在 y = -20; 他们的位置是正确的。

    然后我做这个吐温。

    Tweener.addTween(t, {y: 20, time:0.5, transition:"linear"});
    Tweener.addTween(noteBar, {y: 20, time:0.5, onComplete:Hold, transition:"linear"});
    

    (t是文本字段,notebar是sprite)

    当我这样做时,会发生的事情是sprite变为y=0;但是textfield变为y=20;

    如果textfield y为0,sprite y为20,它就会正常工作。

    但我需要这样做才能让他们回到原来的位置。

    Tweener.addTween(t, {y: -20, time:0.5, transition:"linear"});
    Tweener.addTween(noteBar, {y: 0, time:0.5, transition:"linear"});
    

    因为如果我让雪碧变成-20,那么它最终会变成y=-40;

    为什么这样做?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Gabriel Jensen    14 年前

    当你说“两个都在y=-20”时,你是用flash中的信息调色板来确定这一点吗?

    我问是因为信息调色板有两种显示x,y的模式:注册和转换。这是通过单击信息调色板中X字段左侧的小注册点图标来切换的。

    问题是,在转换模式下,显示的x,y将是文本字段的中心,但实际上,文本字段的x,y是左上角。

    所以,简短的答案是确保信息调色板处于注册模式(十字线图标),然后将文本字段设置为-20。

    另一种解决方案是将文本字段包装在sprite中,这样它的行为方式与notebar相同,在这种情况下,不管信息调色板处于什么模式。

    当然,如果您是在代码中完成这一切,而不是在Flash中定位项目,那么我的解决方案是没有意义的。

    -加布里埃尔