Просмотр полной версии : Видимость функций в классе
Вообщем проблема :umnik2: У меня не видится переменная класса вот как
class Test
{
private var val:Number;
function mf()
{
function slay()
{
this.val = 9;
}
trace(this.val);
}
}
Вот. И в результате получаем, что val - undefened. Как сдлать так, чобы к val присвоилось значение. Вложенная функция нужна! Этот класс просто максимально упрощенный!
Не надо делать вложеных функций в классах.
class Test{
private var val:Number = 10;
public function Test(){}
private function slay():Void{
val = 9;
}
public function mf():Void{
slay();
trace(val);
}
}
Возможно, вы просто объявили функцию, но не запустили.
А как мне тогда сделать из реального примера (опять же многое сократил)
class Test()
{
private var val:Number;
function loadMyXml(file_path:String)
{
var mapXml:XML = new XML();
mapXml.load(file_path);
mapXml.onLoad = function(success)
{
if (success) {
val = 9;
}
}
trace(val);
}
}
trace у тебя таким образом не заработает
Если тебе нужно, чтобы какие то действия выполнялись после загрузки хмл, помещай их в onLoad
имхо Вообще лучше в классе хмл не грузить, а грузить в ролике, а класу передавать узел хмл дерева.
Спасибо за совет. Так и сделал.
Нет. все равно не избавиться от этого! Как передавать переменные/функции во вложенную функцию?(код см выше)
Никаких вложенных функций быть не должно. Используйте Delegate (примеры и все такое есть на форуме).
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.