求助:TypeError: Error #1009: 无法访问空对象引用的属性或方法
flash吧
全部回复
仅看楼主
level 2
manarus 楼主
我想在package中用从fla.中传过来的元件,但是在fla中编译一直有这个提示
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at Fish()
at Fish_fla::MainTimeline/frame1()
Fish.fla
var sp:Sprite=new Sprite();//建立一个容器
addChild(sp);//添加显示列表
var mc:MovieClip = new Yu();
var f:Fish= new Fish();
f.AddFish(mc);
Fish.as
package
{
import flash.display.Sprite;
import flash.events.*;
import flash.display.MovieClip;
public class Fish extends Sprite
{
var sp:Sprite=new Sprite();//建立一个容器
var a:Number = Math.random() * 550;//设置鱼头随机目标点
var b:Number = Math.random() * 400;//设置鱼头随机目标点
var t:Boolean = false;//是否被触碰
var s:int = 40;//鱼速度
var m:Number = 0.02;//鱼的活性
var n:int = 4;//鱼组合所包含的元件数量
var obj:Sprite;
var _mc:MovieClip;
public function Fish()
{
// constructor code
this.addChild(sp);//添加显示列表
stage.addEventListener(Event.ENTER_FRAME,frame);
}
public function AddFish(mc:MovieClip):void
{
_mc = mc;//实例化影片剪辑
for (var i:int=0; i<n; i++)
{//设置变量i n 鱼组件包含的元件数量
//var _mc:MovieClip=new obj();
sp.addChildAt(_mc,0);
//将mc放入sp容器中 鱼头顶层;
_mc.name = "m" + i;//鱼组件中每一个元件起实例名
if (i==0)
{//鱼头位置
_mc.gotoAndStop(1);
//mc 停留在第一帧;
_mc.x = Math.random() * 550;//鱼头出现舞台x坐标
_mc.y = Math.random() * 400;//鱼头出现舞台y坐标
}
else if (i>0&&i<n-1)
{
_mc.gotoAndStop(2);
//显示鱼身体;
}
else
{
_mc.gotoAndStop(3);
}
//显示鱼尾位置;
_mc.scaleX = 1;
_mc.scaleY = 1;
_mc.alpha = 0.90;
}
}
private function frame(e:Event)
{
if (Math.random() < m)
{//如果小于0.08
a = Math.random() * 750;//重新获取随机目标点,
b = Math.random() * 600;
}
for (var i:int=0; i<n; i++)
{//鱼各元件的跟随
var _mc:MovieClip=sp.getChildByName("m"+i) as MovieClip;//当前处理对象mc
if (i==0)
{
_mc.x += (a - _mc.x) / s;//缓动
_mc.y += (b - _mc.y) / s;
_mc.ang = Math.atan2( b- _mc.y, a- _mc.x);//当前对象相对目标对象的角差
_mc.rotation = _mc.ang * 180 / Math.PI;//狐度转角度
}
else
{
var _mc1:MovieClip=sp.getChildByName("m"+(i-1)) as MovieClip;//
var cha_x = _mc1.x - _mc.x;
var cha_y = _mc1.y - _mc.y;//每个关节与前一个关节的坐标差值
_mc.ang = Math.atan2(cha_y,cha_x);//狐度//转头
_mc.rotation = _mc.ang * 180 / Math.PI;//转成角度
_mc.x += cha_x - 15 * Math.cos(_mc1.ang);
_mc.y += cha_y - 15 * Math.sin(_mc1.ang);//y方向距离
}
}
}
}
}
2018年10月21日 16点10分 1
level 12
这个错误是as3里面最常见也是最基础的了 明显告诉你,读到对象所致。
2018年10月21日 16点10分 2
level 12
读不到对象所致。
2018年10月21日 16点10分 3
level 2
manarus 楼主
问什么读不到对象?
2018年10月21日 16点10分 4
跟你说了,读不到对象报错。 as3的世界不存在的东西读不到程序就会报错,这是最基础的东西。
2018年10月22日 06点10分
可怎么解决啊,我定义了那个东西
2019年12月09日 14点12分
@渐鸿公子🌼 需要看到源文件才能解决这样的问题,只是看代码解决不了
2019年12月10日 00点12分
level 12
提示你很清楚了,奈何你不懂。
无法访问空对象,就说这个对象不存在。 既然对象不存在那么对象的属性和方法也不存在。
2018年10月22日 06点10分 5
这个问题,是对象已经被实例化了,实例化以后再调用这个对象,却报了无法访问空间对象的属性或方法,现在楼主问得是为什么对象被实例化了却找不能被访问,我这边也遇到相同的问题,找不到原因
2020年07月22日 02点07分
@ffxxffer 对象或者属性不存在报错 说几遍都是一样的
2020年09月14日 00点09分
level 12
你断点检测一下不就知道哪一行错误了,一看不就清楚了。
2018年10月22日 06点10分 6
1