我不知道为什么它一直说错误1009!?
这里是代码
import flash.events.Event;
var mysound:Sound = new Avondbos();
var channel1:SoundChannel = mysound.play();
start.addEventListener (MouseEvent.CLICK, veeg);
start.buttonMode = true;
function veeg (e:Event):void
{
maan.gotoAndPlay("2");
start.gotoAndPlay("2");
headphone.gotoAndPlay("2");
rupsje.gotoAndPlay("2");
}
maan.land.blad.addEventListener (MouseEvent.CLICK, klikblad);
maan.land.blad.buttonMode = true;
function klikblad(e:Event):void
{
if (maan.land.blad.currentFrameLabel == "halfblad")
Object(root).gotoAndStop(1, "Cocon2");
}
maan.land.blad.addEventListener (MouseEvent.CLICK, klikblad2);
function klikblad2(e:Event):void
{
maan.land.blad.gotoAndPlay("130");
rupsje.gotoAndPlay("293");
}
错误:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Project_550690_Robin_Janssen_fla::MainTimeline/klikblad2()
无法弄清楚我做错了什么,Flash也没有帮助。
提前致谢,
罗宾
答案 0 :(得分:0)
当您尝试访问不存在的内容时,会出现错误1009。
因此,当用户点击时,它会移动到另一个框架,但如果用户再次点击,则无法执行,因为代码不再存在。通过返回的错误,我们可以看到您的程序正在尝试访问该函数' klikblad2()'当它不存在于该帧上时(但它之前所在的帧)。
我建议添加:
whateverTheTargetIs.removeEventListener(MouseEvent.CLICK, eventNameHere);
到所有功能的末尾,转到代码不会出现的另一个框架。这样可以解决您的问题,因为它不再能够聆听点击,这意味着它不会尝试访问不存在的(在该帧上无论如何)功能;所以它不会返回任何错误。
对不起,如果这看起来很复杂或难以理解,只要说你是否仍然感到困惑。
答案 1 :(得分:0)
确定。修好了!
我改变了功能的顺序。
maan.land.blad.addEventListener(MouseEvent.CLICK, klikblad2);
maan.land.blad.buttonMode = true;
function klikblad2(e: Event): void {
if (maan.land.blad.currentFrameLabel == "heelblad")
maan.land.blad.gotoAndPlay("130");
rupsje.gotoAndPlay("293");
}
maan.land.blad.addEventListener(MouseEvent.CLICK, klikblad);
maan.land.blad.buttonMode = true;
function klikblad(e: Event): void {
if (maan.land.blad.currentFrameLabel == "halfblad")
this.gotoAndStop(1, "Cocon2");
}