flex中数组Array的问题
下面是flex其中我写的一段代码:privatefunctiongetUnits():void{varhs:yzHttpService=newyzHttpService(...
下面是flex其中我写的一段代码:
private function getUnits():void{
var hs:yzHttpService = new yzHttpService("UnitsServlet","findAllByPage",null);
hs.addEventListener(GetDataEvent.GETRESULT,getResult4);
hs.open();
}
private var unit:Array; //在这里我定义了一个数组。
private function getResult4(e:GetDataEvent):void{
if(e.data!=null){
unit = e.data; //把从数据库查询出的值赋给数组。
}
}
之后我在另一个方法中查询数组unit的值但却是空的:
private function getIn():void
{
if (unit==null)
Alert.show("数组为空");
else
Alert.show("数组不为空");
}
运行以后弹出的对话框就是“数组为空”。
可是我如果把这段代码:
if (unit==null)
Alert.show("数组为空");
else
Alert.show("数组不为空");
在getResult4()方法中写就可以查询出数组的值。
请问这是为什么?要怎么样才能在其它方法中查询到数组的值?
在getResult4()方法里把unit的值都输出结果为:Object ……
getIn方法是在getResult4方法热行之后调用的。 展开
private function getUnits():void{
var hs:yzHttpService = new yzHttpService("UnitsServlet","findAllByPage",null);
hs.addEventListener(GetDataEvent.GETRESULT,getResult4);
hs.open();
}
private var unit:Array; //在这里我定义了一个数组。
private function getResult4(e:GetDataEvent):void{
if(e.data!=null){
unit = e.data; //把从数据库查询出的值赋给数组。
}
}
之后我在另一个方法中查询数组unit的值但却是空的:
private function getIn():void
{
if (unit==null)
Alert.show("数组为空");
else
Alert.show("数组不为空");
}
运行以后弹出的对话框就是“数组为空”。
可是我如果把这段代码:
if (unit==null)
Alert.show("数组为空");
else
Alert.show("数组不为空");
在getResult4()方法中写就可以查询出数组的值。
请问这是为什么?要怎么样才能在其它方法中查询到数组的值?
在getResult4()方法里把unit的值都输出结果为:Object ……
getIn方法是在getResult4方法热行之后调用的。 展开
2个回答
展开全部
我想问下你在这个GetDataEvent.GETRESULT自定义事件里面的
data变量定义的时候是不是把data初始化了
比如var data:Array = new Array();
这样的话就算getResult4时面你e.data!=null始终都是为真的吧
所以你在getResult4()方法里把unit的值都输出结果为:Object ……
最好你设个断点看下unit的值就知道了,看是否是一个只分配了内存的空数组还是有数据的数组。
如果是像我说的这样的话把var data:Array;改成只声明的话试试看
data变量定义的时候是不是把data初始化了
比如var data:Array = new Array();
这样的话就算getResult4时面你e.data!=null始终都是为真的吧
所以你在getResult4()方法里把unit的值都输出结果为:Object ……
最好你设个断点看下unit的值就知道了,看是否是一个只分配了内存的空数组还是有数据的数组。
如果是像我说的这样的话把var data:Array;改成只声明的话试试看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询