0

我有一个 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”数组..如您所见,我有一个主列表和两个子列表...当在主列表中选择“时间”时,我希望用“时间”相关的单位名称填充子列表......我试过了

if($myList._TextLabel.text == "Time")
{
 $ListFrom._Data = ["this", "this", "this" etc]
}

但它不起作用。我也没有收到任何错误。我真的很感激任何帮助!

4

1 回答 1

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
于 2013-06-01T09:22:34.213 回答