2015-03-31 127 views
-1

我不知道为什么它一直说错误1009!?AS3错误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

我认为你是新的在stackoverflow,所以欢迎。着名的#1009错误!所以在这里,编译器在你的'klikblad2'函数中谈论一个空对象,所以你可以做的是去那个函数并验证你的对象:很简单,你有两行,禁用第一个,如果你仍然得到错误,所以空对象位于第二行,否则,它处于禁用状态!祝你好运 ! – akmozo 2015-03-31 20:48:23

+0

你好! 错误在两行中的第一行。 但是我应该改变什么? 如果我禁用该行,它将不会像它应该执行的那样运行。 – Ruben 2015-03-31 21:55:23

+0

好吧,请确认这一行,但为什么您在'maan.land.blad'对象上为同一个'MouseEvent.CLICK'附加了两个侦听器?你只能使用一个!并在处理程序中,您可以使用'e.target'而不是'maan.land.blad'。 – akmozo 2015-03-31 22:06:25

回答

0

错误1009当你试图访问的东西,不存在发生。

所以,当用户点击时,它会移动到另一个框架,但如果用户再次点击它将无法执行,因为代码将不再存在。由于返回的错误,我们可以看到你的程序正试图访问函数'klikblad2()',当它不存在于该帧(但它以前的帧)上。

我建议增加:

whateverTheTargetIs.removeEventListener(MouseEvent.CLICK, eventNameHere); 

向所有的函数去到另一个帧中的代码不会是结束。这将解决你的问题,因为它不会再听取点击意味着它不会尝试访问一个不存在的(在该框架上)函数;所以它不会返回任何错误。

对不起,如果这看起来很复杂或很难理解,只是说如果你仍然困惑。

+0

修正了它。谢谢! – Ruben 2015-04-01 10:10:53

+0

很高兴我能帮到你。 – gacl 2015-04-01 13:12:33

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"); 
} 
相关问题