我已编写此函数以在单独的函数中响应事件侦听器:
编辑:更新了工作代码。
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是“灰色的”,尽管我还没有找到属性。
答案 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)。不足以引起注意,但如果你多次这样做会加起来