我一直在尝试学习flex / flash编程,我正在开发一个项目,我需要在字符串中动态填充flex中的微调器列表。我有一个使用“split”分隔字符串的函数,现在我需要填充一个数组列表。我已经和这个愚蠢的大人物一起工作了几个小时,可以在任何地方找到帮助。我一直收到以下错误:
TypeError:错误#1009:无法访问空对象引用的属性或方法。 at views :: 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;
任何想法??
答案 0 :(得分:2)
您永远不会构建CommonPlacesArray,只需声明它即可。
var CommonPlacesArray:ArrayList = new ArrayList();
如果你检查Array List API,你也可以清楚地看到它有一个接受数组的构造函数,这意味着你可以将数据复制到它而不必自己迭代它。