0

嗨,我已经编写了一个代码,所以如果您单击一个对象,该对象就会消失,为此我使用了以下代码:

flap1.visible = false;

但是对象需要在整个动画过程中保持假

4

1 回答 1

1

Flash 时间线有点像静态机器。逐帧移动将在该帧(每次)运行所有文档代码。它还将内容的值重置为设计时所处的状态(因此,框架 = 设计 + 代码)。由于此模型可能引起的麻烦,我强烈建议您在一个框架中完成所有设计和代码。简而言之,不要使用时间表

如果您还没有准备好进行转换,并且想要确保它保持隐藏状态,则需要设置flap1每一帧的可见性。这可能看起来像这样:

function toggleBtnListener(e:MouseEvent):void {
    if (flap1.visible) {
        flap1.visible = this.flap1Visibility = false;
    } else {
        flap1.visible = this.flap1Visibility = true;
    }
}

flap1.visible = this.flap1Visibility;

评论回复

您粘贴的代码有两个问题:

  • 您将flap1.visible设置移动到Click侦听器的内部。您希望它在侦听器之外,以便在每一帧上调用它
  • 您在侦听器中有导入语句。在使用类之前,请始终将它们放在代码的顶部。

修改后的代码:

import gs.*;
import gs.easing.*;
TweenMax.to(movieclip1, 2, {scaleX:4, scaleY:4, ease:Elastic.easeOut});

function move_to_top(e:MouseEvent):void {
    if (flap1.visible) {
        flap1.visible = this.flap1Visibility = false;
    } else {
        flap1.visible = this.flap1Visibility = true;
    }
    animateClip()
} 

flap1.visible = this.flap1Visibility;
animateClip()

function animateClip():void {
    if (flap1.visible == false) {
        this.setChildIndex(movieclip1, this.numChildren - 1);
        flap1.addEventListener(MouseEvent.CLICK, move_to_top);
    }
}
于 2013-11-06T15:43:46.080 回答