PDA

Volledige versie bekijken : TypeError: Error #1009: Kan geen eigenschap of methode benaderen via een verwijzing n


Rambotics
%Europe/Berlin %370 %2010, 09:53
Hallo,

Deze vraag zal niet voor de eerste keer gesteld worden maar ik wordt er echt een beetje gek van.
Alles werkt gewoon maar ik krijg telkens deze type error.


TypeError: Error #1009: Kan geen eigenschap of methode benaderen via een verwijzing naar een object dat null is.
at Bostik2CS5V3_fla::Achtergrond_2/entree_out()

Zelf denk ik hieraan:

Ik roep in het eerste frame een functie "on_out", "on_over" en "on_clicked" aan. Wanneer je over een knop gaat wordt deze donker (springt in zijn movieclip naar frame 2) wanneer je eraf gaat wordt hij weer lichter (springt in zijn movieclip naar frame 1) wanneer er geklikt wordt schiet hij 5 frames vooruit naar een andere pagina (framelabel). Wanneer ik klik krijg ik de type error. Klopt het dan dat hij doordat ik klik de "on_out" functie niet meer herkend omdat hij 5 frames verder is en daar de AS code van de functie niet meer staan?

Sorry voor de ingewikkelde uitleg...

Frame 1

knop_entree.addEventListener(MouseEvent.CLICK,entr ee);
knop_entree.addEventListener(MouseEvent.MOUSE_OVER ,entree_over);
knop_entree.addEventListener(MouseEvent.MOUSE_OUT, entree_out);
knop_entree.buttonMode = true;

function entree_over(e:MouseEvent){
knop_entree.gotoAndStop(2)
}

function entree_out(e:MouseEvent){
knop_entree.gotoAndStop(1);
}

function entree(e:MouseEvent){

gotoAndStop("entree");
}
knop_kantine.addEventListener(MouseEvent.CLICK,kan tine);
knop_kantine.addEventListener(MouseEvent.MOUSE_OVE R,kantine_over);
knop_kantine.addEventListener(MouseEvent.MOUSE_OUT ,kantine_out);
knop_kantine.buttonMode = true;

function kantine_over(e:MouseEvent){
knop_kantine.gotoAndStop(2)
}

function kantine_out(e:MouseEvent){
knop_kantine.gotoAndStop(1);
}

function kantine(e:MouseEvent){

gotoAndStop("kantine");
}
knop_toilet.addEventListener(MouseEvent.CLICK,toil et);
knop_toilet.addEventListener(MouseEvent.MOUSE_OVER ,toilet_over);
knop_toilet.addEventListener(MouseEvent.MOUSE_OUT, toilet_out);
knop_toilet.buttonMode = true;

function toilet_over(e:MouseEvent){
knop_toilet.gotoAndStop(2)
}

function toilet_out(e:MouseEvent){
knop_toilet.gotoAndStop(1);
}

function toilet(e:MouseEvent){

gotoAndStop("toilet");
}
knop_vergader.addEventListener(MouseEvent.CLICK,ve rgader);
knop_vergader.addEventListener(MouseEvent.MOUSE_OV ER,vergader_over);
knop_vergader.addEventListener(MouseEvent.MOUSE_OU T,vergader_out);
knop_vergader.buttonMode = true;

function vergader_over(e:MouseEvent){
knop_vergader.gotoAndStop(2)
}

function vergader_out(e:MouseEvent){
knop_vergader.gotoAndStop(1);
}

function vergader(e:MouseEvent){

gotoAndStop("vergader");
}
knop_dak.addEventListener(MouseEvent.CLICK,dak);
knop_dak.addEventListener(MouseEvent.MOUSE_OVER,da k_over);
knop_dak.addEventListener(MouseEvent.MOUSE_OUT,dak _out);
knop_dak.buttonMode = true;

function dak_over(e:MouseEvent){
knop_dak.gotoAndStop(2)
}

function dak_out(e:MouseEvent){
knop_dak.gotoAndStop(1);
}

function dak(e:MouseEvent){
gotoAndStop("dak");
}

knop_zwembad.addEventListener(MouseEvent.CLICK,zwe mbad);
knop_zwembad.addEventListener(MouseEvent.MOUSE_OVE R,zwembad_over);
knop_zwembad.addEventListener(MouseEvent.MOUSE_OUT ,zwembad_out);
knop_zwembad.buttonMode = true;

function zwembad_over(e:MouseEvent){
knop_zwembad.gotoAndStop(2)
}

function zwembad_out(e:MouseEvent){
knop_zwembad.gotoAndStop(1);
}

function zwembad(e:MouseEvent){
gotoAndStop("zwembad");
}
stop();

Frame 5


speel_entree.addEventListener(MouseEvent.CLICK,spe elentree);
speel_entree.buttonMode = true;

function speelentree(event:MouseEvent):void {
if (filmentree.currentFrame == 51)
{
filmentree.gotoAndPlay("entree_normal");
speel_entree.alpha = .50;
terug_entree.alpha = 1;
}
}
beginscherm.addEventListener(MouseEvent.CLICK,home schermentree);
beginscherm.buttonMode = true;

function homeschermentree(event:MouseEvent):void {
gotoAndStop("home");
}
terug_entree.addEventListener(MouseEvent.CLICK, reverseClip_entree);
terug_entree.buttonMode = true;

function reverseClip_entree(e:MouseEvent):void{
if (filmentree.currentFrame == 1)
{
filmentree.gotoAndPlay("entree_reverse");
terug_entree.alpha = .50;
speel_entree.alpha = 1;
}
}

stop();

Alvast bedankt voor enige hulp

Groetjes

Dauntless
%Europe/Berlin %403 %2010, 10:41
Je uitleg is best duidelijk hoor.

Ik denk niet dat het probleem daar aan ligt, maar je kan het eenvoudig testen/fixen:
function entree_out(e:MouseEvent){
if(knop_entree) knop_entree.gotoAndStop(1);
}


Je kan overigens achter het framenummer van de fout komen als je hem in debug mode compiled dmv ctrl + shift + enter.

Rambotics
%Europe/Berlin %450 %2010, 11:48
Ja dat was inderdaad de oplossing en de fout zat idd bij "entree_out".

Maar nu heb ik "if (knop_entree)" ervoor geplaatst maar ik weet eigenlijk niet waarom ik die error niet meer krijg. Zou je me dat misschien uit kunnen leggen dan snap ik het zelf ook:-)

Bedankt

PS: Bedankt voor de ctrl-shift-enter tip, die gebruikte ik al een tijd niet meer..

Dauntless
%Europe/Berlin %547 %2010, 14:08
if(knop_entree) kijkt na of je knop bestaat. Als die knop niet bestaat zal hij 'false' geven en dus de regel er achter niet uitvoeren.

Rambotics
%Europe/Berlin %626 %2010, 16:02
Ik snap hem! Bedankt voor de korte uitleg:-)