До тех пор, пока не проиграется видео и не загрузится контентная часть, ссылки основного меню неактивны. Каким образом это можно реализовать, с учетом того, что все кнопки это мувиклипы.
Нужно отслеживать события загрузки всех данных в контентной части и отслеживать окончание проигрывания видео. Само «отключение» MovieClip'a возможно таким образом:
_mc.enabled = false;
Чтобы клип «активизировать» снова, нужно написать:
Можно и так, согласен. Я обычно использовал такой способ, если не известно какие кнопки сейчас находятся на сцене или их очень много. Если кнопок не очень много и известно, сколько их, то, на мой взгляд, лучше делать _mc.enabled = false;
Это понятно, но этой одной строчкой я выключаю кнопку до тех пор, пока где-то не будет написано _mc.enabled = true;. Правильно? Мне же интересен пример выключения кнопки на время полной загрузки мувиклипа:
К примеру, у нас есть сцена, где в первом кадре лежат три кнопки. На втором кадре лежит контент вызываемый при нажатии на первую кнопку, на третьем кадре, контент вызываемый при нажатии на вторую кнопку и т.д. При нажатии на первую кнопку срабатывает готоэндплэй 2, и начинается загрузка контента для первой кнопки. Каким образом мне в этот момент заблокировать кнопки 2 и 3 до полной загрузки контента для первой кнопки?
Если вам нужно отследить загрузку каких-то частей сайта, то я бы не разбивал контент на 3 кадра, а в первом кадре запускал бы загрузку внешних файлов, чтобы можно было отследить, когда загрузится один из них, чтобы включить нужную кнопку.
Почитайте урок о MovieClipLoader, возможно вам станет понятнее, как это делается. А вообще, если у вас нет особой необходимости отслеживать загрузку контента по частям, то сделайте просто внешний прелоадер и отслеживайте когда флешка загрузится полностью.
Мне же нужно сделать увеличивающуюся полоску без текста, но, предварительно, не делая для нее отдельную анимацию. Вопрос в том, как сделать прелоадер кодом в рамках урока MovieClipLoader. Бьюсь уже кучу времени, но никак не могу понять.
Главное тут понять, что отвечает за процент загруженного файла. У нас таким параметром является varPercent. Итак, создаём на главной сцене клип с именем line_mc, пусть в нём будет просто квадратик любого цвета, который не будет совпадать с цветом фона, чтобы мы могли отличить его, пусть его размер будет 10*10px.
Теперь, вместо приведённой вами строки прописываем следующее:
_root.line_mc._width = varPercent/100 * 500;
Тут надо понять, что число 500 — это максимальная ширина линии. Когда линия расширится до этой отметки, то загрузка завершится. Вместо 500 может быть любое число, и 20, и 100, и даже 1000.
Да, так и получается. Только если будете тестировать в Flash IDE, то могут быть проблемы, если какие-то объекты будут вылазить за размеры поля. В HTML всё должно будет работать без проблем.
Нужно отслеживать события загрузки всех данных в контентной части и отслеживать окончание проигрывания видео. Само «отключение» MovieClip'a возможно таким образом:
_mc.enabled = false;Чтобы клип «активизировать» снова, нужно написать:
_mc.enabled = true;А если на момент проигрывания (загрузки всего контента и т.д.) поверх всех кнопок поставить слой-кнопку с кодом?
onClipEvent (load) { butt.useHandCursor = false; }По сути, конструкция прекрасно работает.
Можно и так, согласен. Я обычно использовал такой способ, если не известно какие кнопки сейчас находятся на сцене или их очень много. Если кнопок не очень много и известно, сколько их, то, на мой взгляд, лучше делать _mc.enabled = false;
А можно пример кода c _mc.enabled = false, если у нас, к примеру, три кнопки. Просто слабо представляю себе, как это выглядит.
Отключение кнопки и состоит из одной только строчки:
_mc.enabled = false;Где _mc — путь к клипу. Или вы не это имели ввиду?
Это понятно, но этой одной строчкой я выключаю кнопку до тех пор, пока где-то не будет написано
_mc.enabled = true;. Правильно? Мне же интересен пример выключения кнопки на время полной загрузки мувиклипа:К примеру, у нас есть сцена, где в первом кадре лежат три кнопки. На втором кадре лежит контент вызываемый при нажатии на первую кнопку, на третьем кадре, контент вызываемый при нажатии на вторую кнопку и т.д. При нажатии на первую кнопку срабатывает готоэндплэй 2, и начинается загрузка контента для первой кнопки. Каким образом мне в этот момент заблокировать кнопки 2 и 3 до полной загрузки контента для первой кнопки?
Если вам нужно отследить загрузку каких-то частей сайта, то я бы не разбивал контент на 3 кадра, а в первом кадре запускал бы загрузку внешних файлов, чтобы можно было отследить, когда загрузится один из них, чтобы включить нужную кнопку.
Почитайте урок о MovieClipLoader, возможно вам станет понятнее, как это делается. А вообще, если у вас нет особой необходимости отслеживать загрузку контента по частям, то сделайте просто внешний прелоадер и отслеживайте когда флешка загрузится полностью.
Да, спсибо, штука куда лучше, чем то, что я пытался сделать.
И еще вопрос:
В уроке о MovieClipLoader прелоадер текстовый и управляется кодом:
Мне же нужно сделать увеличивающуюся полоску без текста, но, предварительно, не делая для нее отдельную анимацию. Вопрос в том, как сделать прелоадер кодом в рамках урока MovieClipLoader. Бьюсь уже кучу времени, но никак не могу понять.
Главное тут понять, что отвечает за процент загруженного файла. У нас таким параметром является varPercent. Итак, создаём на главной сцене клип с именем line_mc, пусть в нём будет просто квадратик любого цвета, который не будет совпадать с цветом фона, чтобы мы могли отличить его, пусть его размер будет 10*10px.
Теперь, вместо приведённой вами строки прописываем следующее:
_root.line_mc._width = varPercent/100 * 500;Тут надо понять, что число 500 — это максимальная ширина линии. Когда линия расширится до этой отметки, то загрузка завершится. Вместо 500 может быть любое число, и 20, и 100, и даже 1000.
Огромное спасибо!
Тогда, получается, если вместо 500 вставить Stage.width, то прелоадер получается резиновым и тянется на всю ширину окна.
Да, так и получается. Только если будете тестировать в Flash IDE, то могут быть проблемы, если какие-то объекты будут вылазить за размеры поля. В HTML всё должно будет работать без проблем.