as3 Zugriff auf nicht definierte Eigenschaft?
Kann mir jemand helfen heraus zu finden, warum bin ich immer die Fehlermeldung "Zugriff auf nicht definierte Eigenschaft: removeChild(goBack)" auf den folgenden geschnippelt?
BTW, dies ist für flash CS4
function nameOfFunction() {
var goBack:backButton_mc = new backButton_mc();
goBack.x = 10;
goBack.y = 700;
goBack.back_text.text = myXML.*[buildingName].NAME;
goBack.name = "backBtn";
goBack.buttonMode = true;
addChild(goBack);
goBack.addEventListener(MouseEvent.CLICK, anotherFunction);
}
function anotherFunction(e:MouseEvent):void {
removeChild(goBack);
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie falsch mit dem Rahmen. (überraschung :-D)
Die variable goBack ist nur definiert innerhalb der "nameOfFunction", wenn Sie versuchen, Zugriff auf diese aus einer anderen Funktion wie "anotherFunction" es wird nicht mehr vorhanden ist (auch wenn es auf der display-Liste)
Gibt es verschiedene Möglichkeiten, dieses problem zu lösen:
Oder der beste Weg wäre: fördern goBack als einen Schüler der die Klasse halten beide Funktionen. (Oder, wenn Sie nicht Klassen machen goBack "global".)
Hippo ist richtig, aber ich glaube, es ist wichtig zu erklären, ein wenig mehr.
Du erstellt eine lokale variable, d.h. var someVariable:DataType; innerhalb einer Funktion. Dies bedeutet, dass diese variable ist nur verfügbar für Objekte in dem Bereich (innen) von der Funktion (lokal), und es wird nur für die Dauer der Funktion. Sobald die Funktion hat, lief der code ist Weg, bis wieder ran. Wie es aussieht, sind wahrscheinlich die Programmierung direkt in der flash-IDE auf die Zeit-Linie, die ist in Ordnung, aber, wenn Sie mit einer document-Klasse, Sie konnte lediglich deklarieren Sie die variable in der Klasse-Bereich nur über den Konstruktor-Funktion, und legen Sie dann den Wert in der gleichen Funktion, die Ihr mit jetzt. Diese Art der Referenz auf die variable existiert innerhalb der Funktion, es ist lediglich von innen. Dies ermöglicht es, die variable zugegriffen werden kann von überall in der gleichen Klasse, selbst wenn auf "privat" gesetzt.
Kann dies helfen:
Bereich ist sehr wichtig, und nach einer Weile sehr leicht zu bewältigen. Stick mit ihm, Experimentieren, Lesen, auf Konventionen und Normen, die helfen können, Ihre Entwicklung und lernen zu lieben, das Sie für "DocumentClass", weil, obwohl es kann entmutigend sein für einige auf den ersten, sobald Sie es lernen und sich daran gewöhnen, es so schwer zu gehen zurück zu der Programmierung in der IDE flash auf der Zeitleiste, wo ich glaube, dass nur die Anzeige der Objekte und audio an jedem Ort sein.