我有一个TheList.as类..我已经为Android应用程序创建了一个列表。 这是TheList.as(减少到这个问题的具体内容)
public var _ListItem:ListItem;
public var _Data:Array;
public var _Values:Array;
public var $CurrentValue:String;
public var _TextLabel:TextField;
public function TheList(Data:Array,Values:Array)
{
_Data = Data;
_Values = Values;
initialize();
}
private function initialize():void
{
_TextLabel = new TextField();
addChild(_TextLabel);
_TextLabel.text = "Data";
_Container = new ListContainer ;
addChild(_Container);
_Container.x = 0;
_Container.y = 0;
currentY = _Container.y;
lastY = _Container.y;
for (var i:int = 0; i < _Data.length; i++)
{
_ListItem = new ListItem ;
_Container.addChild(_ListItem);
_ListItem.y = _ListItem.height * i;
_ListItem.addEventListener(MouseEvent.MOUSE_DOWN,onItemDown,false,0,true);
_ListItem.addEventListener(MouseEvent.MOUSE_UP,onItemUp,false,0,true);
_ListItem.mouseChildren = false;
_ListItem.value = _Values[i];
_ListItem.name = _Data[i];
_ListItem.ItemLabel.text = _ListItem.name ;
}
}
这是“TheList”类正在使用(再次减少到特定的东西)
$myList = new TheList($Data,$Values);
addChild($myList);
$myList.x = -240;
$myList.y = -203;
$myList.visible = false;
$ListFrom = new TheList($DataFromTo, $ValuesFromTo);
addChild($ListFrom);
$ListFrom.x = -240;
$ListFrom.y = -203;
$ListFrom.visible = false;
$ListFrom._TextLabel.text = $DataFromTo[0];
$ListTo = new TheList($DataFromTo, $ValuesFromTo);
addChild($ListTo);
$ListTo.x = -240;
$ListTo.y = -203;
$ListTo.visible = false;
$ListTo._TextLabel.text = $DataFromTo[0];
现在我想要实现的是我想要改变“$ Data”和“$ Values”Arrays ..你可以看到我有一个主列表和两个子列表...当选择“时间”时主要列表,我希望子列表填充“时间”相关的单位名称...我试过
if($myList._TextLabel.text == "Time")
{
$ListFrom._Data = ["this", "this", "this" etc]
}
但它不起作用。我也没有收到任何错误。我真的很感激任何帮助!
答案 0 :(得分:1)
您尝试实现的目标并非如此。您使用数据字段初始化列表。重置数据时,需要再次使列表无效。您可以使用项目设置器
来实现此目的private var __Data:Array;
public function get _Data():Array
{
return __Data;
}
public function set _Data(value:Array):void
{
this.__Data = value;
initialize();
}
确保在重新重建之前首先清理列表。
您的代码:
$ListFrom._Data = ["this", "this", "this" etc]
将自动调用setter。 getter和setter方法看起来像一个函数,但是像属性一样被调用。的意思是:
object.property = "something" //will call the setter
var something:String = object.property //will call the getter