2 Stimmen

Wie man in Action Script 2 Variablen an Inline-Funktionen übergibt

Ich habe die folgende Funktion, aber ich kann nicht scheinen, um die Variable myVar in die Inline-Funktion zu erhalten. Was mache ich hier falsch? Was ich gerne hätte, ist, wenn ich auf myMc klicke, sollte myVar auf der Konsole ausgegeben werden ("Hallo Computer").

function doSomething():Void
{   
    myVar = "hello computer";

    myMc.onRelease = function(){
        trace(myVar); //prints as "undefined"
    }
}

ps. - Ich kann myVar nicht als globale oder statische Variable deklarieren, da ich im echten Code XML analysiere und myVar sich ständig ändert.

3voto

Reuben Punkte 1192

Dies ist ein Problem des Geltungsbereichs - wenn Sie eine onRelease-Funktion wie diese in as2 anwenden, ist der Geltungsbereich der Funktion der MovieClip, auf den Sie die Funktion anwenden, und nicht die aufrufende Funktion.

Da Sie AS2 verwenden und MovieClip dynamisch ist, können Sie die Variable direkt dem MC zuweisen:

function doSomething():Void
{   
    myMc.myVar = "hello computer";

    myMc.onRelease = function(){
        trace(this.myVar);
    }
}

0voto

a paid nerd Punkte 29564

Versuchen Sie zu erklären myVar mit dem var Stichwort:

var myVar = "hello computer";

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X