FLASH TypeError: Error #1009: 无法访问空对象引用的属性或方法. 5
var i:int = 0;
stage.addEventListener(Event.ENTER_FRAME,snowing);
function snowing(event:Event):void
{
var snow_mc:snow = new snow();
addChild(snow_mc);
snow_mc.x = Math.random() * 550;
snow_mc.scaleX = snow_mc.scaleY = 0.2 + Math.random();
snow_mc.alpha = 0.5 + Math.random() * 0.5;
i++;
if (i>10)
{
this.removeChildAt(1);
}
FLASH樱花动画报错 卡死 到底咋办啊
求人解决
}
复制的就别来了,求高手啊 展开
此报错是因为你在“对象还没加载到舞台上”的时候,就让这个对象“访问了舞台”,因为它找不到舞台,于是报错。
先侦听这个对象是否被加载到舞台上,当它被加载到舞台上的时候,你再执行你的init(),如此你就可以再init()里随意的访问stage了。具体代码如下:
package {
......
import flash.events.Event;//导入Event类
public function MouseDistance() {
addEventListener(Event.ADDED_TO_STAGE, init);//加“加载到舞台”的侦听
}
private function init(e:Event):void {//加个参数
......
}
你的代码是实时显示鼠标到舞台中心点的距离,并且将“中心点”和“鼠标所在点”连线,我这里如上更改后运行正常
扩展资料:
源码主要功用有如下2种作用:
1.生成目标代码,即计算机可以识别的代码。
2.对软件进行说明,即对软件的编写进行说明。为数不少的初学者,甚至少数有经验的程序员都忽视软件说明的编写,因为这部分虽然不会在生成的程序中直接显示,也不参与编译。
但是说明对软件的学习、分享、维护和软件复用都有巨大的好处。因此,书写软件说明在业界被认为是能创造优秀程序的良好习惯,一些公司也硬性规定必须书写。
需要指出的是,源代码的修改不能改变已经生成的目标代码。如果需要目标代码做出相应的修改,必须重新编译
参考资料来源:百度百科-源码
下面详细的解释一下:
你新建了一个MouseDistance类对象f,它的构造函数运行init();并且这个函数里面用到了舞台(语句:mc1.x=stage.stageWidth/2;),但是这个时候你还没有将f放入舞台(语句:addChild(f);),所以它找不到stage,然后报错。当你用mc1.x=150;mc1.y=125这样的语句写死的时候,就不会报错了。
但是你肯定也发现上面的解决方法相当的傻,下面说一个聪明的:
先侦听这个对象是否被加载到舞台上,当它被加载到舞台上的时候,你再执行你的init(),如此你就可以再init()里随意的访问stage了。具体代码如下:
package {
......
import flash.events.Event;//导入Event类
public function MouseDistance() {
addEventListener(Event.ADDED_TO_STAGE, init);//加“加载到舞台”的侦听
}
private function init(e:Event):void {//加个参数
......
}
你的代码是实时显示鼠标到舞台中心点的距离,并且将“中心点”和“鼠标所在点”连线,我这里如上更改后运行正常,希望我的解释对你有帮助。