我有一个类(TheList.as)。其中我有一个数组“数据”,它有几个值。然后我有一个循环,通过它我创建一个可滚动列表,使用“数据”数组中的值。 [我正在尝试制作单位转换器]
然后我有另一个班级“Units.as”。在那个类中,我创建了三个“TheList”实例。主列表(“myList”),以及“ListFrom”和“ListTo”的子列表。他们使用的是“数据”数组中的值。现在我有一个文本字段,其值会更改为单击的任何项目。当我点击主列表中的“角度”时,我希望子列表中填充(“Degree”,“Radian”等)..
这是我试过的
if(myList._TextLabel.text == "Angle")
{
ListFrom.Data = ["Degree", "Radian"];
}
但没有任何反应,我也没有任何错误。当我在“ENTER_FRAME”事件和跟踪(ListFrom.Data)中执行此操作时,我可以看到值更改,但它们不会分配给列表中的列表项。我真的很感激帮助。谢谢!
以下是完整的类,可以更好地理解情况(代码非常混乱,因为我是OOP的新手)
TheList.as:http://pastebin.com/FLy5QV9i Units.as:http://pastebin.com/z2CcHZzC
答案 0 :(得分:0)
你调用ListFrom.Data = [“Degree”,“Radian”],确保数据发生变化时,ListFrom中的渲染已经设置了新数据。例如,您可以在ListFrom中使用MyRender进行show,您应该在MyRender的set data方法中进行调试。 你打电话给ListFrom.Data = [“Degree”,“Radian”]后你应该调用下面的代码;
for (var i:int = 0; i < Data.legnth;i++) {
var render:MyRender = ListFrom[i] as MyRender;
if (render) {
render.data = Data[i];
} else {
var render:MyRender = new MyRender();
render.data = Data[i];
ListFrom.addChild(render);
}
}
答案 1 :(得分:0)
您可以使用事件侦听器,单例类或将一个类引用到另一个类,具体取决于您想要的样式。所有这些都同样有效,快速/高效。