我有这些代码,并没有像我预期的那样工作。 btnContainer是一个包含大量按钮的VBox(toggle = true);我希望在某个时刻将它们重置为未切换。
for (var btn:Object in btnContainer.getChildren()){
if (btn.isPrototypeOf(mx.controls.Button)){
btn.selected = false;
}
}
使用上面的代码,“btn”在循环的每次迭代(0,1,2,3,...)中只显示索引,条件永远不会计算为true。
我也试过这个:
for (var btn:Button in btnContainer.getChildren()){
btn.selected = false;
}
这很好,除了btnContainer中还有一个标签;因此在尝试将标签转换为按钮时会抛出错误。
我做错了什么,这里?
答案 0 :(得分:4)
如果要循环遍历数组的元素,请使用“for each..in
”循环,如果要查看变量是否与给定类型兼容(例如,给定类的实例) ,使用is
运算符。
对于这种确切的案例,语言参考有an example。
这是固定代码:
for each (var btn:Object in btnContainer.getChildren()){
if (btn is Button){
btn.selected = false;
}
}
答案 1 :(得分:2)
您是否尝试过使用is
?
import mx.controls.Button;
//...
for (var key in btnContainer.getChildren()){
var obj : Object = btnContainer[key];
if (obj is Button){
var button : Button = obj as Button;
button.selected = false;
}
}