如果变量低于X量,AS3会更改项目可见性

时间:2012-04-01 21:02:08

标签: actionscript-3 flash dispatchevent greensock

我在下面附上了一个源文件,我有点卡住了。

基本上,它是一个FLA,它有一个变量(smscounter),它基于从XML文件(在我的服务器上)读入的任何数字。在主舞台的第1帧上有一个叫做“复卷机”的大型电影剪辑。左右按钮可在该动画片段“重绕器”内的帧之间导航。我在理论上要做的是:

if(frame != 2) {button_right.visibility = true};
if(frame == 2 && smscounter > 5) {button_right.visibility = true};
if(frame == 2 && smscounter < 5) {button_right.visibility = false}

我被告知这样做不会因为一旦设置了变量(可见性),它就不会只是不断地检查它,所以我必须派遣一个事件?我已经尝试了3-4个教程,但我无法工作。

现在有几件事:
  - 我很乐意避免任何超级复杂的事情。所有我需要的是在第2帧,按钮不在那里如果smscounter低于5.其他教程需要另一个类和文档类,但我无法让他们工作
  - 按钮当前位于复卷动画片段之外。我把它们放在每个框架内部,但是后来我无法让它们对翻滚做出反应   - 代码大致如同一年级学生写的那样优化,主要是因为我是一名设计师而且我一直在用这个方面得到帮助。
  - Greensock LoaderMax用于放置视频和声音。与问题没有多大关系,我只是将它们留在那里,以便更好地了解我正在做的工作。

链接到FLA和源文件: http://www.mediafire.com/download.php?ejy6j9h9r1c1829

1 个答案:

答案 0 :(得分:3)

您可以将此代码添加到主时间轴 看起来你只能进入第2帧和第3帧,但你总共有21帧(来自电压条),这就是我使用数字而不是1和totalFrames的原因。

rewinder.addEventListener(Event.ENTER_FRAME,checkButtons);
function checkButtons(e:Event):void{
    if(rewinder.currentFrame <= 2){
        button_left.visible = false;
    }else{
        button_left.visible = true;
    }

    if(rewinder.currentFrame >= 3){
        button_right.visible = false;
    }else{
        button_right.visible = true;
    }
}