AS3.0 无法访问空对象引用的属性或方法。

作者&投稿:应费 (若有异议请与网页底部的电邮联系)
as3.0 无法访问空对象引用的属性或方法,急!~

var clip = this["song" + (i + 1)].title;
clip.text = str;

你这个自己声明的clip是什么来的 感觉就是场景上的一个文本框 但你又var 干啥?

可以试试检查你的si_1是否在你的stopmain_2上的每一帧都有它。

var targetY:Number=stage.stageHeight/2;
这句有问题,stage为NULL
照我说的改一下就好了。
在构造函数里写:
this.addEventListener(Event.ADDED_TO_STAGE, init);
如:
var targetY:Number;(变量一般在构造函数里赋值)
public function An() {
this.addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event):void {
removeEventListener(Event.ADDED_TO_STAGE, insit);
targetY = stage.stageHeight/2;
}
这样就可以了.就不会报错了

你的问题出在这里var targetY:Number=stage.stageHeight/2;
这里是访问不到舞台的,当然是不会有这个属性了。
正确的方法是将舞台作为参数引进到类中,这样就可以了。
package {
import flash.display.SimpleButton;
import flash.events.MouseEvent;
import flash.events.Event;
public class An extends SimpleButton {
var vy:Number=0;
var sy:Number=0.01;
var ay:Number=0;
var targetY:Number
var mcl:Number=0.95;
public function An(obj:*) {
targetY=obj.stageHeight/2;
init();
}
private function init():void {
addEventListener(MouseEvent.MOUSE_OVER,onMouseOver);
}
function onMouseOver(event:MouseEvent):void {
removeEventListener(Event.ENTER_FRAME,onE);
addEventListener(Event.ENTER_FRAME,onEnter);
addEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
}
function onEnter(event:Event):void {
ay=(44-this.y)*sy;
vy+=ay;
vy*=mcl;
this.y+=vy;
}
function onMouseOut(event:MouseEvent):void {
removeEventListener(MouseEvent.MOUSE_OUT,onMouseOut);
removeEventListener(Event.ENTER_FRAME,onEnter);
addEventListener(Event.ENTER_FRAME,onE);
}
function onE(event:Event):void {
ay=(23-this.y)*sy;
vy+=ay;
vy*=mcl;
this.y+=vy;
}
}
}
你实例化的时候这样实例化:
var ball1:An=new An(stage);
var ball2:An=new An(stage);
var ball3:An=new An(stage);

你的stage是空的
无论是代码里引用的stage还是实例化时传进来的stage都是空的
stage报空是很常见的问题,用stage的时候一定要确保stage存在
targetY改一下 不要用stage赋值,先声明一下
var targetY:Number=stage.stageHeight/2;改成
var targetY:Number;
An的构造函数这样写:
public function An(_stage:Stage) {
if(_stage){
this.stage = _stage;
targetY = stage.stageHeight/2;
init();// init放这里
}else{
trace("stage是空的,兄弟");
}
}
new An()的时候把舞台帧的stage传进去 这样 new An(stage);

打开电脑管家 查找Flash 更新最新版本 一定可以 我就这样不出现错误 相信我 可以记的点赞


马尔康县15355675754: AS3.0为何会出现这个问题? TypeError: Error #1009: 无法访问空对象引用的属性或方法. at Main() -
畅茅独活: 很高兴为您解答,一定会在构造函数jiantou()之后才可以调用,所以只要在构造函数中传递了不为null的值,当method()调用时,mc就绝对不会是null——除非你把method()改为静态方法.要在构造函数中保证_mc不为空,可以试试.因...

马尔康县15355675754: Flash as3.0 错误无法访问空对象引用的属性或方法 -
畅茅独活: 严重的错误只有一个,就是没有给CirclePoint赋值一个对象,使得其为空,一开始处至少要:var CirclePoint:Point = new Point(); 其他部分的逻辑我是实在是理不清楚,虽然能运行,但是不知道是要干什么.. 本来如果只是圆周运动,没有这么复杂的.

马尔康县15355675754: as3 Error #1009: 无法访问空对象引用的属性或方法. -
畅茅独活: 我按照你说的代码试了一下,果然是出错的.所以我觉得是这么回事.as代码是在第一帧就运行了 但是第一帧上并没有txt的实例,所以_txt就是一个空对象了.你在第二帧使用Init()自然就会报错.

马尔康县15355675754: AS3.0 TypeError: Error #1009: 无法访问空对象引用的属性或方法 -
畅茅独活: 看你的代码和报错信息 应该是代码写在一些分散的帧上,报错的是adding1p1 但是你给的代码里没有 检查下时间轴第4帧 你adding1p1函数会用到的东西还在不在舞台上

马尔康县15355675754: AS 3.0 1009 无法访问空对象引用的属性或方法 -
畅茅独活: 我觉, 你应该在41地方, 加stop()命令.让影片停止在41;随便猜的, 没有依据

马尔康县15355675754: AS3.0报错“无法访问空对象引用的属性或方法”求助啊!怎么改? -
畅茅独活: 仔细看了下代码,指出几个错误的地方,但是还不确定你的代码能正确运行,因为可能还有其他地方的错误:1、setMove(p:MovieClip)函数中, 给player赋值的表达式写反了:p = player;应该是player = p;,这个是导致产生“无法访问空对象...

马尔康县15355675754: Flash as3 错误提示TypeError: Error #1009: 无法访问空对象引用的属性或方法. -
畅茅独活: home_mc 这元件名 请在舞台上 使用它的第一帧就命名!例如 你这个home_mc是在 37帧就出现在舞台上了,你的代码添加在50帧你应该在37帧就对这个元件进行命名,而不是只有在50帧命名!

马尔康县15355675754: as3中TypeError: Error #1009: 无法访问空对象引用的属性或方法. -
畅茅独活: 既然你以前单机过很多次都没有问题,那么这个对象的名称以及引用的属性和方法都应该没有问题.可能是某次单击的时刻(或这一帧上)没有这个对象,才出现这个错误提示.

马尔康县15355675754: AS3里这段代码 无法访问空对象引用的属性或方法.怎么办 -
畅茅独活: 应该不是stage的值为null的原因.如果stage为null,stage.addEventListener(Event.ENTER_FRAME,o);这一行就首先报错了.你的"btn"元件什么时候才出现在场景上呢?如果不是一进入场景就出现的话,即使用ADDED_TO_STAGE 事件也无济于事.btn.addEventListener(MouseEvent.CLICK,cli)这一行要写在让btn出现的代码后面.

马尔康县15355675754: Flash as3.0 TypeError: Error #1009:无法访问空对象引用的属性或方法. at f - fla::MainTimeline/mouse() -
畅茅独活: 意思就是比如说一个元件叫做hello 你在代码写:hollo.x = 1; 这时hollo就是空对象.或者是一直判断某帧某元件,进入下一帧这元件没了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网