Error #1009: 无法访问空对象引用的属性或方法 --问过的个问题 解决了 记录下

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);这个只是获取了类引用,你还要建立实例,下面的代码才可以

怎么建立实例?

=====================================================================

我找到原因和解决的办法了。在这个谢谢carson,TDbenben的热心。
我在这写下,给以后遇到 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了
=================新手   说的不对莫怪==============

你可能感兴趣的:(Eclipse)