![]() |
вытащить значение переменной из функции
есть функция в которой определена переменная next:
Код:
public function onGetTime(t:String):void {может не правильно сформулировал вопрос, во флеше я новичек. |
ну а почему просто next не сделать глобальной?
Код AS3:
|
сделал так
Код AS3:
Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".из файла php передается значение переменной: May 28 07:00:00 GMT+0000 2010 - это дата события в формате UTC next = new Date(t);// в данном случае берет эту строку и преобразует её с учетом часового пояса пользователя в Fri May 28 10:00:00 GMT+0300 2010 дальше идет код таймера, в котором первой строчкой определялась дата события var nextsession:Date = new Date(Date.UTC(2010, 04, 28, 7, 0, 0, 0));// если забить руками, то все работает, но мне это не подходит, нужно чтобы переменной nextsession=next Добавлено через 11 минут а если еще проще сказать, то мне необходимо данные t:String загнать в глобальную переменную Код AS3:
|
Сделать функцию возвращающей значение через return. Как вариант.
|
Можно пример на моем коде? Не совсем допонял.
|
Инетерсно в какой строчке ошибка... подозреваю что в var nextsession:Date = next;
Код AS3:
|
Цитата:
|
нет, не поэтому.
Что вы дальше делаете с nextsession ? Смысл в том, что вы скорее всего обрабатываете nextsession уже дальше еще до того, как вызовется функция onGetTime |
Код AS3:
|
Цитата:
Код AS3:
Код AS3:
Добавлено через 5 минут Цитата:
Добавлено через 6 минут Из функции никак нельзя объявить переменную, чтоб она действовала во всем клипе? |
Нельзя, но почему бы вам не сделать пустую
Добавлено через 11 минут Тем более, что у вас почти так, как нужно, просто перенести nextsession = next; внутрь функции. |
не очень понял как вы вообще используете класс Timer ... ну да ладно.
Проблема в том, что действия выполняются в следующем порядке: 1)Вы создаете объект Timer , в нем вещаются слушатели ваши и отправляется запрос на сервер. 2) пока запрос идет, вы в таймлайнет обрабатываете свойство nextsession объекта Timer, которое еще не определено. 3) от сервера приходит ответ, и nextsession становится равной тому чему нужно, но уже поздно :( Выход - в таймлайне создать функцию, которая будет обрабатывать nextsession передать эту функцию в качетстве параметра в Timer и в функции onGetTime вызывать ее. ps как то неудачно назван класс - все таки существует стандатный класс с таким же именем. |
А еще лучше не писать в кадрах, а вынести все в классы и переделать структуру логики кода.
|
Цитата:
если я пишу Код AS3:
а по другому я не знаю как. |
Вообще-то локальные переменные не могут иметь модификаторов доступа. Следовательно, нужно вынести за пределы функции объявление переменной. И ретурн там не нужен.
Добавлено через 1 минуту Код AS3:
|
в общем попробую убрать весь код с таймлайн.
|
| Часовой пояс GMT +4, время: 23:17. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.