http://hi.baidu.com/ajamos/blog/item/b799118f7d5757eaf01f3634.html
#1009: 无法访问空对象引用的属性或方法
每次点击按钮的时候 都会出现这样的提示:
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at bbb_fla::MainTimeline/Run()
请问是什么原因,先谢了!
var n:uint =4;
var i,k:uint;
var wide:uint =52;
var x0:uint =425;
var I:uint;
for (i=0; i<=n; i++) {
var dyy=new dy();
addChildAt(dyy,0);
dyy.x=x0+wide*i;
dyy.y=0;
dyy.name="dy"+i;
}
for (i=0; i<=n; i++) {
var Temp=getChildByName("dy"+i);
Temp.I=i;
Temp.dyw_txt.text=i;
Temp.wenzi_txt.text=i;
Temp.mybt_btn.addEventListener(MouseEvent.CLICK,Run);
}
function Run(event:MouseEvent):void {
var namestr:String=event.target.parent.name;
var id=namestr.charAt (2);
getChildByName("dy"+id).x=x0+wide*id;
for (k=1; k<=id; k++) {
Drun(getChildByName("dy"+(k-1)),k);
}
for (k=id; k<=n; k++) {
getChildByName("dy"+(k+1)).x=x0+wide*(k+1);
}
}
function Drun(tdy:Object,k):void {
while (tdy.x>wide*(k-1)) {
tdy.x=tdy.x-2;
}
if (tdy.x<=wide*(k-1)) {
tdy.x=wide*(k-1);
}
}
=========================================
有解答说:
var Temp=getChildByName("dy"+i);这个只是获取了类引用,你还要建立实例,下面的代码才可以
怎么建立实例?
=====================================================================
我在这写下,给以后遇到 Error #1009的朋友做个参考;
如:
for(var i:int=0;i<_line.numChildren;i++)
{
_searchObject=new Object();
_searchObject=_line.getChildAt(i);
if(_searchObject.getChildByName(_stationName) is Object)
{
_searchObject.getChildByName(_stationName).gotoAndPlay(2);
}
}
如果没有IF的判断,i只在取其中一个值的时候_searchObject.getChildByName(_stationName).gotoAndPlay(2);有效,那么没有判断的话,i取别的值的时候getChildByName(_stationName).是找不到实例的,也就是空了,这时候运行gotoAndPlay(2);就抛出Error #1009了
=================新手 说的不对莫怪==============