Просмотр полной версии : глюк с глобальными переменными
definite
27.02.2007, 21:46
Скажите, пожалуйста, ничего не понимаю. Упрощенно, ситуация такая - на одном слое управляется клавишами чувак, он же объект-клип. Его меняющиеся координаты заносятся в 2 глобальные переменные, объявленные на верхнем слое, где накатала код. Замечательно меняются. И все это работает на 30 зацикленных кадрах. А в 31 кадр попадаю по выполнению условия. Там первый мувик убирается, вместо него появляется другой. Передаю ему координаты того, первого, а он не хочет. Вывожу в текстовое поле энту самую глобальную переменную. А она пишется, как undefined. Хотя до этого совершенно замечательно выводилась.
HELP!!!
Что за йо мойо?!
А если через _global. обращаться к переменным, то все равно undefined?
Покажи простенький исходник, иллюстрирующий проблему.
Передаю ему координаты того, первого, а он не хочет:confused:
definite
27.02.2007, 23:48
по почте послать?
нет, надо аттачить исходник zip-архивом в сообщение.
если в глобальные переменные пишутся те значения, которые возникают, вычесляются и тп с помощью мувиклипа, которого нет в 31ом кадре, соответственно, например, если переменные передаются с интервалом, а
в какой-то момент исчезает мувик, из которого высчитываются значения, то в глобальные переменные и должны заносится значения "undefined"
Это мои догадки, а вообще хорошобы на код взглянуть.
definite
28.02.2007, 20:19
дизайн дебильный. тренировочное упражнение. управление стрелками и пробелом.
чувак и враг должны бы вроде вертеться, когда встречаются в том же месте, а вертятся там, где поставлены в кадр изначально.
к переменным обращаюсь, не как _global, кажется. Но это все равно. С глобалом тоже пробовала.
В данном примере:
1. Я не нашел кода который переносит нас в 31 кадр.
2. Какая именно переменная не записывается в _global?
definite
01.03.2007, 09:55
большой пардон. В 32 кадр.
Пожалуйста. Help.
definite
01.03.2007, 09:56
переменные xpos1,ypos1,xpos2,ypos2
вот фрагмент твоего кода
if((xpos1 - en._x)<60 && (xpos1 - en._x)>-60 && (ypos1 - en._y)<60 && (ypos1 - en._y)>-60)
{ i = 0;
_root.gotoAndPlay(32);
_root.car1._x = 40;
_root.car1._y = 100;
_root.car1.play();
_root.car2.stop();
_root.car3.stop();
_root.car4.stop();
_global.xpos1 = _root.car1._x;
_global.ypos1 = _root.car1._y;
}
_global.xpos2 = _root.en._x;
_global.ypos2 = _root.en._y;
}
У тебя последнее присвоение значений переменным xpos1,ypos1,xpos2,ypos2 происходит уже после перехода на 32 кадр. Клипов car1 и en в 32 кадре нет. Отсюда undefined.
definite
02.03.2007, 19:56
Да, спасибо, Kruasan, заслэшила эти 2 строчки,
_global.xpos1 = _root.car1._x;
_global.ypos1 = _root.car1._y;
Теперь чувак вертится, где надо.
Только мне хотелось, чтобы после этого его отбросило на прежние позиции.
Не понятно только, почему выполняется весь код 1 кадра, когда
в логике обычного программирования после _root.gotoAndPlay(32);, как после вызова фукции, стал бы выполняться код 32 кадра, а потом бы все вернулось в точку вызова , и продолжали бы выполняться инструкции 1 кадра.
Вот этот момент совершенно логически неясен.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.