AS3中的条件IF语句

时间:2013-04-18 15:53:52

标签: actionscript-3 flash-cs6

我已编写此函数以在单独的函数中响应事件侦听器:

编辑:更新了工作代码。

       function greyOutItems(event:Event):void {

        if (DisableCheckBox.selected) {
            myComboBox.alpha = 0.5;

            myComboBox.enabled = false;
            trace("hide combobox success");
        }
        if (DisableCheckBox.selected == false) {
            myComboBox.visible = true;
            myComboBox.enabled = true;
            trace("visible");
        }
    }

第一个if语句很有效,当用户点击CheckBox时隐藏ComboBox,但我希望用户能够取消选中相同的CheckBox并再次显示ComboBox。

理想情况下,不是将alpha属性设置为0,我更喜欢ComboBox是“灰色的”,尽管我还没有找到属性。

3 个答案:

答案 0 :(得分:1)

你的if语句错了。 =是作业。您应该使用==或直接在if语句中使用selected

if (DisableCheckBox.selected) {
    myComboBox.alpha = 0;
    trace("success");
}
if (!DisableCheckBox.selected) {
    myComboBox.alpha = 1;
    trace("revisible");
}

答案 1 :(得分:1)

如果myComboBox是一个动画片段,你可以“灰显”按钮而不是使用alpha属性的一种方法是向它添加第二帧,它位于一个灰色的半字母框后面或类似的效果,你可以在Flash编辑器中更好地控制。

在您的代码中,您可以使用myComboBox.gotoAndStop(2)将框显示为灰色,或myComboBox.gotoAndStop(1)将其恢复正常。

答案 2 :(得分:1)

您的条件始终为真,因为您在条件中将它们设置为该值。 “=”仅用于“分配”属性 。 “==”是“相当于”。所以if (DisableCheckBox.selected = true)实际上将selected属性设置为true以及条件的工作方式,因为它成功设置了值,它被标记为真实的语句。

function greyOutItems(event:Event):void {
    if (DisableCheckBox.selected == true) {
        myComboBox.alpha = 0;
        trace("success");
    }
    if (DisableCheckBox.selected == false) {
        myComboBox.alpha = 1;
        trace("revisible");
    }
}

在这种情况下,您也应该使用else而不是第二个条件。 else语句在运行时会运行得稍快(因为它不必检查第二个条件,如果所有条件都为假,它只运行else)。不足以引起注意,但如果你多次这样做会加起来