ActionScript3:声明对象后如何初始化该对象中的数组长度?
我使用的AS3类是:ActionScript3:声明对象后如何初始化该对象中的数组长度?,actionscript,Actionscript,我使用的AS3类是: package { public class PeopleInfo { public var elements:int; public var PeopleName:Array; public var PeopleInt:Array; public var PeopleDecimal:Array; } } 在另一个文件中,我得到: <?xml version="1.0" encoding
package {
public class PeopleInfo {
public var elements:int;
public var PeopleName:Array;
public var PeopleInt:Array;
public var PeopleDecimal:Array;
}
}
在另一个文件中,我得到:
<?xml version="1.0" encoding="utf-8"?>
<s:Application
creationComplete="initApp()"
xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx">
<fx:Script>
<![CDATA[
public var ii:int;
public var dataWriteToDB:PeopleInfo = new PeopleInfo;
public function initApp():void
{
// Initialize data provider array.
var int_data:Array = new Array(10, 20, 30, 40, 50);
var decimal_data:Array = new Array(13.11, 23.34, 35.69, 43.29, 58.92);
var name:Array = new Array("Joe", "Karen", "Simon", "Greg", "Alice");
dataWriteToDB.elements = 5; // number of elements in array
for (ii = 0; ii < dataWriteToDB.elements; ii++)
{
dataWriteToDB.PeopleName[ii] = name[ii];
dataWriteToDB.PeopleInt[ii] = int_data[ii];
dataWriteToDB.PeopleDecimal[ii] = decimal_data[ii];
}
}
and so on...
我收到一个运行时错误:错误#1009:无法访问引用for循环第一行的null对象引用的方法的属性dataWriteToDB.PeopleName
,因为它是null
我猜这里的问题是,虽然最初声明了dataWriteToDB,但PeopleInfo类中的数组长度尚未设置。或者,不确定它为什么为空。有人知道如何清除吗?类中的数组尚未初始化。你应该在声明中这样做:
package {
public class PeopleInfo {
public var elements:int;
public var PeopleName:Array = [];
public var PeopleInt:Array = [];
public var PeopleDecimal:Array = [];
}
}
还考虑使用<代码> Pux向数组中添加元素,以避免意外访问不存在的索引:
for (ii = 0; ii < dataWriteToDB.elements; ii++)
{
dataWriteToDB.PeopleName.push(name[ii]);
dataWriteToDB.PeopleInt.push(int_data[ii]);
dataWriteToDB.PeopleDecimal.push(decimal_data[ii]);
}
(ii=0;ii
{
dataWriteToDB.PeopleName.push(名称[ii]);
dataWriteToDB.PeopleInt.push(int_data[ii]);
dataWriteToDB.PeopleDecimal.push(十进制数据[ii]);
}