|
|
|||||
Регистрация: Mar 2009
Сообщений: 3
|
Присваивание переменной в функции
Добрый день, столкнулся с проблемой в AS3. Уже третий день пытаюсь найти решение, или статью на эту тему, но всё безрезультатно.
Вот отрывок из кода private function loadMarks (): void { var loadMarks : Array = new Array (); var Marks : String; var mrOpts : String; var loadMarksOpts : Array = new Array (); user.loadVariable(666, function (xml:XML):void { if (xml.name() =="response") { mrOpts = xml.toString(); loadMarksOpts = mrOpts.split(","); //Тут значения есть! Alert.show(loadMarksOpts.toString()); Alert.show(loadMarksOpts.length.toString()); } else { Alert.show("Ошибка: " + xml.toString()); } } ) //А тут уже нет Alert.show(loadMarksOpts.toString()); Alert.show(loadMarksOpts.length.toString()); } Но за пределами функции он снова пуст. Пожалуйста, подскажите в чём дело, а так же что и где нужно про это прочитать, дабы не вставать снова на эти грабли. Последний раз редактировалось flibustier; 23.03.2009 в 15:30. |
|
|||||
Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
|
loadMarksOpts - локальная переменная, существующая во время выполнения функции... объявите ее вне тела функции и все будет читаться.
|
|
|||||
[+1.3 20.03.09]
Регистрация: Oct 2007
Сообщений: 35
|
Глупый вопрос... так ты создай переменую масива за пределами фунцкий.. тоесть private var loadMarks : Array = new Array ();
|
|
|||||
Регистрация: Mar 2009
Сообщений: 3
|
Моя ошибка - не отметил, что пытаюсь прочитать loadMarksOpts внутри функции, где она и объявлена
С объявлением значения существуют так же только внутри функции . Добавлено через 1 час 30 минут Есть во Flex понятия присваивания по ссылке и присваивания по значению? Последний раз редактировалось flibustier; 23.03.2009 в 16:26. |
|
|||||
Modus ponens
|
А вы еще больше анонимных функций наделайте, и выбросьте дебагер - а зачем он вам, только место поди занимает! вы им все равно не пользуетесь, а даже если захотите - он вам уже не поможет
ЗЫ. тут кроме области видимости еще проблема в том, что никто из нас не знает когда вы вызываете функцию модифицирующую loadMarksOpts. Но судя по вашей реакции вызываете вы ее поздно
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 23.03.2009 в 17:49. |
|
|||||
Регистрация: Mar 2009
Сообщений: 3
|
Видимо, вы знаете ответ на мой вопрос.
Тогда задаем ещё один: Подскажите, как дебагить приложения вконтакте? Эта тема как раз от этого вопроса растёт. |
Часовой пояс GMT +4, время: 03:06. |
|
« Предыдущая тема | Следующая тема » |
Теги |
lifetime , видимость переменных , переменные , функция |
Опции темы | |
Опции просмотра | |
|
|