Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Определение переменной в сцене (http://www.flasher.ru/forum/showthread.php?t=147785)

No Brakes 14.12.2010 09:17

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

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

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

No Brakes 14.12.2010 09:20

Вложений: 1
Вот прикрепил мелкий *.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

Цитата:

Сообщение от rainbowrussia (Сообщение 957433)
_parent._parent.night.

Да, но сканало именно с _root. Не знаю, почему.
Цитата:

Сообщение от rainbowrussia (Сообщение 957433)
Или хотя бы _root.night независимо от уровня вложенности.

Такая конструкция у меня не сработала, хотя очевидно, что должно быть именно так.
Так, как написано сверху - все работает, как надо. Именно с _root._root. Это криво, но по-другому в моем случае не работает. Я вот и хотел узнать, что за шутки такие со мной флеш шутит?)))

pow_x 15.12.2010 13:07

No Brakes, rainbowrussia
Выше написано же
Цитата:

и одна из них, - неудобство с областями видимости


Часовой пояс GMT +4, время: 06:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.