如何基于另一个类中的文本字段在一个类中填充数组?(Actionscript 3.0)

时间:2013-06-04 05:23:32

标签: actionscript-3

我有一个类(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

2 个答案:

答案 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)

您可以使用事件侦听器,单例类或将一个类引用到另一个类,具体取决于您想要的样式。所有这些都同样有效,快速/高效。