0

我一直在尝试学习 flex/flash 编程,并且正在开发一个项目,我需要从字符串中动态填充 flex 中的微调器列表。我有一个使用“split”分隔字符串的函数,现在我需要填充一个数组列表。我已经和这个愚蠢的大家伙一起工作了好几个小时了,但在任何地方都找不到帮助。我不断收到以下错误:

TypeError:错误 #1009:无法访问空对象引用的属性或方法。在意见::CommonPlaces/initApp()[/Users/twing207/Documents/Adobe Flash Builder 4.6/AmericanTaxi/src/views/CommonPlaces.mxml:30]

我的代码在这里:

<fx:Script>
    <![CDATA[
        import mx.collections.ArrayList;
        import spark.events.IndexChangeEvent;

        var Arr1:Array;
        var Arr2:Array;
        var Arr3:Array;

        [Bindable]
        public var CommonPlacesArray:ArrayList;

        var CommonPlacesData:String = new String("2133664:American Taxi Dispatch, Inc:Mount Prospect:834 E RAND RD|2133665:Walmart:Mount Prospect:930 Mount Prospect Plaza|2228885:Garage:Des Plaines:1141 Lee St|2228886:Asian Island:Palatine:1202 E Dundee Rd|2229464:Kohl's:Arlington Heights:700-856 W Dundee Rd|");
        var CurrentSelect:String = new String();

        private function initApp():void {

            Arr1 = CommonPlacesData.split("|");
            var arrLength:Number = new Number(Arr1.length);

            for (var i:Number = 0; i < (arrLength - 1); i++) {
                CurrentSelect = new String(Arr1[i]);
                Arr2 = CurrentSelect.split(":");

      //THE LINE BELOW IS WHERE IT STOPS:
                CommonPlacesArray.addItem(Arr2[1]);
            }

        }

它似乎不喜欢“CommonPlacesArray.addItem”行。任何帮助或正确方向的观点都会很棒。先谢谢了!

另一方面,我也收到以下错误:“未定义属性的访问:数据”:

在另一个视图中,我将 data.UserCommonReturnData 的值设置为字符串。

function LoginLoaded (e:Event):void {
                        trace(e.target.data);
                        var ServerReturn:String;
                        ServerReturn = new String(e.target.data);
                        data.UserCommonReturnData = ServerReturn;
                        navigator.pushView(CommonPlaces, data);
                    }

在这里我试着把它拉回来:

var CommonPlacesData:String = new String();
            var CurrentSelect:String = new String();

//下一行给出错误:CommonPlacesData = data.UserCommonReturnData;

任何想法??

4

1 回答 1

2

你永远不会构造 CommonPlacesArray,你只需声明它。

var CommonPlacesArray:ArrayList = new ArrayList();

如果您检查Array List API,您还可以清楚地看到它有一个接受数组的构造函数,这意味着您可以将数据复制到其中,而无需自己对其进行迭代。

于 2012-07-05T16:28:30.987 回答