Actionscript 3 无法从某些函数中访问库中的AS3对象(按钮)

Actionscript 3 无法从某些函数中访问库中的AS3对象(按钮),actionscript-3,object,reference,null,Actionscript 3,Object,Reference,Null,我正在用AS3开发一个简单的图像处理器,像往常一样,当一个恼人的小问题出现时,我几乎完成了它。我想用对话框打开一个图像,一旦图像打开,我希望“selectBtn”(在我的库中)消失。但是,当我尝试下面的代码时,我得到一个错误:“错误#1009:无法访问空对象引用的属性或方法”。我相信这很简单,但我就是搞不懂 // declare variables var image:Bitmap; var loader:Loader = new Loader(); var fileRef:FileRefere

我正在用AS3开发一个简单的图像处理器,像往常一样,当一个恼人的小问题出现时,我几乎完成了它。我想用对话框打开一个图像,一旦图像打开,我希望“selectBtn”(在我的库中)消失。但是,当我尝试下面的代码时,我得到一个错误:“错误#1009:无法访问空对象引用的属性或方法”。我相信这很简单,但我就是搞不懂

// declare variables
var image:Bitmap;
var loader:Loader = new Loader();
var fileRef:FileReference= new FileReference();

selectBtn.addEventListener(MouseEvent.CLICK, openImage);

function openImage(event:MouseEvent):void {
fileRef.browse([new FileFilter("Images", "*.jpg;*.gif;*.png")]);
fileRef.addEventListener(Event.SELECT, onFileSelected);
}

function onFileSelected(e:Event):void {
fileRef.addEventListener(Event.COMPLETE, onFileLoaded);
fileRef.load();
}

function onFileLoaded(e:Event):void {
loader.loadBytes(e.target.data);
image = Bitmap(loader.content);
selectBtn.visible = false;
}

托德说的很准确:“selectBtn”的定义在哪里?它是在舞台上,还是嵌套在某个movieclip实例中

假设stage上存在该按钮,并且代码与按钮在同一帧中运行,您可以尝试
this.stage.selectBtn.visible=false

否则,请跟踪您已选择BTN作为参考。或者您可以声明一个变量来引用它。i、 e:

var selectBtnRef:Button = this.stage.selectBtn;

如果您正在使用时间线和关键帧,请确保您的按钮存在于调用此代码的所有帧中。另外,请确保为按钮提供了一个实例名“selectBtn”