如何根据另一个图层中的值使影片剪辑不可见?

时间:2013-11-17 23:00:19

标签: actionscript-3 flash

我正在尝试为我的游戏制作一个“成就”页面,如果用户的得分高于100,则可以解锁成就。我尝试使用这样的代码,但似乎没有用!

function Check();
if(endscreen_mc.highscore_txt > 100)
{
medals.roachLock.visible = false;
}
else if(endscreen_mc.highscore_txt < 100)
{
medals.roachLock.visible = true;
}
else if(endscreen_mc.visible == 100)
{
medals.roachLock.visible = true;
}

高分值保存在共享对象中。我的代码有什么问题,我该怎么做才能修复它?

2 个答案:

答案 0 :(得分:0)

endscreen_mc.highscore_txt属性的类型是什么?如果是TextField,您首先需要访问文本字段的text属性并将其转换为Number,如下所示:

var score:Number = Number(endscreen_mc.highscore_txt.text); // this casts the String value of the text property to a Number

if(score > 100)
{
    medals.roachLock.visible = false;
}
else
{
    medals.roachLock.visible = true;
}

另外我简化了if / else语句。现在,如果分数不大于100,则锁定将可见。

答案 1 :(得分:0)

ActionScript中的可见属性是类型Boolean - 意味着它只能包含值“true”或“false”,因此您的第三个语句

  

否则if(endscreen_mc.visible == 100)

不起作用。 Mabye你想放在那里

  

endscreen_mc.highscore_txt

另外,重要一点,你的功能Check();没有正文,这意味着每个动作脚本函数都是这样的:

function functionName(){}//your if statement goes between curly brackets.

所以如果我做对了,这就是你的功能应该是什么样的:

function Check(){
    if(endscreen_mc.highscore_txt > 100){
        medals.roachLock.visible = false;
    } else {
        medals.roachLock.visible = true;
    }
}