Цитата(Duncon @ 11.01.2006 - 15:02)
Давайте на примере рассмотрим их:
Представим что у меня есть сцена из 2 слоев..
Что я от этого хочу:
1) Мне нужно первое событие обработать, я так поняд on (load) это оно, или есть еще какие, в нем я хочу вырубить видимость 2-го слоя.
2) далее на слое один у меня есть кнопка по нажатию я хочу выключить(_visible) 1 слой и включить 2 слой..
Как бы операции не проблема, но как обратится по иерархии, не как не пойму..
Пишите пожалуйста полный путь (типа _root корень, если не ошибаюсь), мне интересно как это выглядет(обращения всмысле)...
Duncon1) Существуют разные обработчики, в том числе и те, которые автоматически срабатывают без (активного) участия пользователя. Здесь есть несколько разных из подмножиства on - это и лоад и ентерфрейм. Которые имеют разное предназначение, одни используются в обычных кадрах, а другие предназначены для мувиклипов (например если вынести весь код обработчика или логику в мвиклип, чтобы не сцене в таймлайне не висел код).
Для обычного случая, когда код распологается в кадре, достаточно просто его в кадре разместить, чтобы он сработал во время проигрования данного кадра. Т.е. без каких либо дополнительных обработчиков (без on() - просто сам код).
Во флеше весь кодинг привязан к таймлайну и к кадрам в нём. О чём я ещё далее упомяну.
Что касается твоего желания вырубить видимость первого 2го слоя.
Как мне известно во флеше нет возможности программно включать/выключать слои. Так как слои предназначены совсем для другого (это относится к тому что во флеше всё завязано на кадрах, как я упоминал выше, и слоях, и каждый из этих уровней иерархии ролика имеет своё предназначение, которое мало перекликается с традиционными программными средствами разработки).
Во флеше до 6й (МХ) версии включительно, может в новых версиях и могли добавить возможность программного хайдинга (мне об этом не известно), но смысла в этом большого нет, так как во влеше используется другая парадигма разработки.
Всё сводится к слоям и кадрам.
И в данном случае тебе нужно сделать следующее:
1. В первом кадре делаешь первый слой как тебе нужно, но второй слой в первом кадре оставляешь пустым (очищаешь - там не должно быть ничего, пустой кадр).
2. В акшонсах кадра прописывашь стоп (_root.stop(); или просто stop()

. При этом пользователь видет лишь первый слой со всеми его элементами (в твоём случае - кнопка).
2) Теперь про кнопку и второй кадр.
1. В твоей кнопки в акшонсах (не в кадре, а в кнопке самой - выделишь ей и нажмёшь F2) напишешь обработчик нежатия - он релиз.
Код
on (release0 {
_root.GotoAndStop(2);
}
2. Далее сделай во втором кадре всё что тебе нужно, при этом в первом слое ничего нет, лишь во втором. Как ты хотел.
3. При этом в акшонсах (кадра) прописывашь стоп. Хотя это не обязательно, так как в кнопке уже стоп прописан, но в некоторых случаях дополнительная подстраховка может пригодится.
И при нажатии кнопки пользователь видет лишь второй слой.
Вот и всё

.