PDA

Просмотр полной версии : Определение переменной в сцене


No Brakes
14.12.2010, 09:17
Прочитал уже материал который нашел на форуме, но все равно не получается.
При нажатии на левый квадрат, правый - меняет цвет.
Нужно, чтобы при переходе по сценам правый квадрат оставался такого цвета, который был выбран, вне зависимости от сцены. Т.е. я нажал на красный - синий стал зеленым и остается зеленым, пока я не нажму на красный снова, вне зависимости от сцены. Что я сделал не так?

PS Расположение мувиклипов и "кнопок" менять нельзя, т.к. это утрированная копия большого мульта, хочу принцип понять.

Добавлено через 1 минуту
Черт, не могу загрузить *.fla, пишет некорректный файл, в чем проблема?

No Brakes
14.12.2010, 09:20
Вот прикрепил мелкий *.fla

No Brakes
15.12.2010, 07:29
Всем спасибо, разобрался сам. У меня только вопрос:
Я задаю переменную в 1м кадре 1й сцены
_global.night;
По-идее ее должны видеть все, и обращаться к ней надо всегда одинаково (по моей логике)
Но код работает только если в мувиклипе, который находится в этой же сцене обращаться к ней, как

onClipEvent(load){
if(night==2){this.gotoAndStop(2);}
else{this.gotoAndStop(1);}
}

А в кнопке, которая находится в мувиклипе этой же сцены

on(release){
_root._root._global.night=2;
}

Почему в одном случае мне достаточно просто написать имя переменной, а в другом нужна приставка _global и почему в 1м случае я не пишу никаких _root (это, кстати, мне понятно), а во 2м пишу аж 2 раза.
По-другому код не робит.

mooncar
15.12.2010, 09:55
Для начала: не пишите код на кнопка и объектах.
Тогда как минимум кто-нибудь захочет разбираться в вашем вопросе.

No Brakes
15.12.2010, 11:50
Это какое-то правило хорошего тона, о котором я не знал?

mooncar
15.12.2010, 11:58
Это правило хорошего программирования. Ни в одном современном справочном пособии вы не найдете таких вещей.
Так не делается по целому ряду причин уже много-много лет, и одна из них (но далеко не главная), - неудобство с областями видимости.

No Brakes
15.12.2010, 12:05
Понял, спасибо, блин, что-то не могу найти в инете про подобные причины, возможно, вы дадите мне какие-нибудь ссылки?

rainbowrussia
15.12.2010, 12:08
Наверное вместо _root._root... вы хотели использовать _parent._parent.night (кол-во _parent завипист от вложенности). Или хотя бы _root.night независимо от уровня вложенности.

No Brakes
15.12.2010, 12:15
_parent._parent.night.
Да, но сканало именно с _root. Не знаю, почему.
Или хотя бы _root.night независимо от уровня вложенности.
Такая конструкция у меня не сработала, хотя очевидно, что должно быть именно так.
Так, как написано сверху - все работает, как надо. Именно с _root._root. Это криво, но по-другому в моем случае не работает. Я вот и хотел узнать, что за шутки такие со мной флеш шутит?)))

pow_x
15.12.2010, 13:07
No Brakes, rainbowrussia
Выше написано же
и одна из них, - неудобство с областями видимости