无法访问空对象引用的属性或方法Flex

问题描述:

我一直在试图学习flex/flash编程,并且正在开发一个项目,我需要从一个字符串动态地在flex中填充一个微调列表。我有一个函数,使用“split”分隔字符串,现在我需要填充数组列表。我现在一直在与这个愚蠢的大人一起工作,可以在任何地方找到帮助。我不断收到以下错误:无法访问空对象引用的属性或方法Flex

TypeError:错误#1009:无法访问空对象引用的属性或方法。 的意见::老生常谈/ initApp()[/用户/ twing207 /文档/使用Adobe Flash Builder的4.6/AmericanTaxi/src目录/视图/ 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;

任何想法??

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

var CommonPlacesArray:ArrayList = new ArrayList(); 

如果检查Array List API你也可以清楚地看到它有一个接受一个数组,这意味着你可以将数据复制到它,而无需在它自己的迭代构造。

+0

哇,我应该知道这很简单和愚蠢!谢谢您的帮助!!!!!!!!! – 2012-07-05 16:48:40

+0

你能告诉我为什么当我使用数据绑定将“数据”推送到下一个视图时出现错误。我有一行设置一个字符串= data.UserCommonReturn,它说“访问未定义的属性”,但在其他几个视图,它工作正常......任何想法? – 2012-07-05 16:52:43

+0

我不确定,我必须看到代码才能猜出发生了什么 – 2012-07-05 16:54:29