PDA

Просмотр полной версии : Какая-то фигня с вложеными климпами aka кнопками...


DizzWebS
12.06.2009, 20:22
В общем есть вложеный клип, который состоит из двух кадров. На первом висит код:
stop();
this.onRollOver = function() {
gotoAndPlay(2);
};

this.onRollOut = function() {
gotoAndPlay(1);
};

this.onRelease = function() {
_root.gotoAndPlay(3);
};
На второмstop();
Этот вложенный клип у меня идёт как кнопка (при наведении на неё, она меняет цвет), при нажатии на которую на основной сцене флеш переходит на кадр 3. Ну это и так все поняли, в принципе.
На основной сцене у меня, ну, допустим, три слоя с такими кнопками.
При нажатии на кнопку (кнопки слева назодятся), справа вылезает определённый текст, который находится на третьем кадре. (Соответственно кнопка со второго слоя ведёт на 4-й кадр основной сцены, и кнопка с третьего слоя ведёт на 5-й кадр основной сцены). Кдры по одному находятся на отдельных слоях
Для того, чтобы приложение не было пустым, и всегда были кнопки для навигации, то каждая кнопка соответственно продлена до пятого кадра.

Собственно сама проблема: тыкаю в "навгации" на кнопку, всё нормально, текст выводится, тыкаю на вторую, и третью - тоже всё нормально, НО - если тыкнуть один раз на кнопку, то выведется то, что мне надо, а вот если второй раз тыкнуть на эту же кнопку, то она на основной сцене делает переход на один кадр вперёд... Если третий раз тыкнуть, то обратно переходит туда, куда надо. Я не могу понять, в чём вобще проблема, почему так? И как сделать, чтобы оно останавливалось...

iNils
12.06.2009, 21:02
Тот который справа, левее высокого, который ниже среднего относительно самого высокого справа.

Может исходник лучше?

DizzWebS
12.06.2009, 21:41
эмм, исходник большой, да и лишние глаза ему ни к чему, поэтому лучше скрин. А ещё лучше попробую наваять маленькое подобе того, про что сказать хочу.

DizzWebS
12.06.2009, 21:58
вот.. тоже самое, как и в моём приложении

iNils
12.06.2009, 23:25
Боже мой.
1. Почему код раскидан где только можно? Создавайте вверху пустой слой и помещайте код в нем (кроме кода в этом слое больше ничего не держите), не раскидывайте его по слоям.
2. Зачем дублируете один и тот же код? Для этого создаются функции с параметрами.
3. Зачем пишите
abc.multiline = true;
abc.wordWrap = true;
abc.html = true;
когда это все делается в панели свойств?
4. Зачем используете вместо gotoAndStop, метод gotoAndPlay и кучу stop()?
5. Это вы вряд ли знаете, но сначала надо определить onLoad, а потом уже использовать load. Возьмите это за правило.

Изучите мой пример, хотя он и далек от того, как должно быть наиболее правильно, но вам для начала нужно с основами разобраться.

DizzWebS
13.06.2009, 16:30
Хм, спасибо за подсказки и пример.

А с моим варинтом ничего нельзя сделать? Просто в проекте у меня очень много мест, где используются подобные кнопки, время на переделку уже нету:(

Добавлено через 43 минуты
Да, в примере действительно всё намного проще... в разы вобще. Ну я по незнанию, к сожалению, делал.. Так сказать "на ощупь".

Добавлено через 47 минут
ха, а gotoAndStop вместо gotoAndPlay помогло!:) Спасибо за помощь!