Как передать переменные в встроенные функции в Action Script 2 - PullRequest
2 голосов
/ 11 ноября 2009

У меня есть следующая функция, но я не могу получить переменную myVar во встроенную функцию. Что я здесь не так делаю? Я хотел бы, чтобы при нажатии myMc он выводил myVar на консоль («привет компьютер»).

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

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

пс. - Я не могу объявить myVar как глобальную или статическую переменную, потому что в реальном коде я анализирую XML, а myVar постоянно меняется.

Ответы [ 2 ]

3 голосов
/ 12 ноября 2009

Это проблема области действия - когда вы применяете функцию onRelease, подобную этой, в as2, областью действия функции является мувиклип, к которому вы применяете функцию, а не вызывающая функция.

Поскольку вы используете AS2, а MovieClip является динамическим, вы можете назначить переменную MC напрямую:

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

    myMc.onRelease = function(){
        trace(this.myVar);
    }
}
0 голосов
/ 12 ноября 2009

Попробуйте объявить myVar с ключевым словом var:

var myVar = "hello computer";
...