Понимать Flash / Actionscript, чтобы создать приложение со многими страницами - PullRequest
2 голосов
/ 12 марта 2012

Я планирую создать фото / видео галерею, защищенную булавкой.Так что я планирую иметь 4 страницы, Логин, Меню, Страницу с изображением и Просмотр видео.Логин был бы простым текстовым полем, где я проверяю булавку.Меню будет отображать все фотоальбомы и видео в списке, который я создаю с помощью кликабельных спрайтов, кнопок или чего-то в этом роде.И просмотр видео, где будет показано видео, если я нажму на ссылку видео на странице меню.

Я попытался подготовить сцену во Flash CS5, поэтому я решил создать 4 кадра.У всех страниц есть свой слой.Первым будет вход в систему, второе меню, третье представление изображения (включая показ уменьшенных изображений и всплывающее окно полноэкранного просмотра) и просмотр видео.На каждом ключевом кадре я поместил прямоугольник, преобразуя его в мувиклип, выступающий в качестве основного контейнера, в который будут помещаться все материалы.

Теперь я попытался инициализировать все эти мувиклипы, изменяя их размер каждый раз, когда изменяется размер сцены.Для этого я получаю ошибки, что некоторые из MovieClips являются нулевыми.Это потому, что мувиклипы существуют только ключевой кадр 2 для меню или ключевой кадр 3 для страницы изображения и ключевой кадр 4 для просмотра видео.Поэтому я должен поместить их все в ключевой кадр 1, чтобы иметь доступ.Но я создал 4 ключевых кадра, потому что я хочу перейти к ним с помощью «gotoAndStop (n)», где n означает ключевой кадр 2, 3 или 4.

Я не понимаю, как Flash интерпретирует код икак видимость этих мувиклипов.Могу ли я получить доступ к MovieClip только из ключевого кадра 2, потому что я добавил его только в ключевой кадр 2?Как лучше всего иметь простое 4-страничное приложение, где на странице 1 (меню) я нажимаю ссылку на видео, которая содержит какой-то идентификатор видео, а затем я перехожу к ключевому кадру 4 для просмотра видео с этим идентификатором,но как это сделать, когда Actionscript даже не знает, что есть видео контейнер MovieClip.Чтобы Actioscript знал все из них, мне нужно переместить их в ключевой кадр 1, но затем, как сделать пейджинг.

Посмотрите на следующий скриншот из моего проекта.Он показывает временную шкалу с 4 ключевыми кадрами.Как видите, каждый слой имеет 4 кадра, но только один ключевой кадр для мувиклипа.Я думаю, мне не нужно добавлять 4 ключевых кадра, не так ли?

Timeline screenshot from my Flash Video/Photo Gallery Project

Я делал простую фотогалерею раньше, но я использовал только один ключевой кадр, делая все вещи в нем, поэтомуУ меня не было никаких проблем при доступе ко всем MovieClips, поскольку мне не нужно было делать прыжки / пейджинг.Я хотел бы разделить каждую страницу, имея их на отдельном ключевом кадре, но имея возможность доступа к содержимому в нем через Actionscript.Я неправильно понял, как работает Actionscript ??

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 12 марта 2012

Я бы прекратил использовать несколько кадров (только по 1) и выбросил каждую из своих «страниц» в свой собственный мувиклип. Тогда я либо сделаю только свою текущую страницу loginPageInstanceName.visible = true, а остальные menuPageInstanceName.visible = false и т. Д. ... при необходимости, либо даже инициализирую каждую страницу movieClip по мере необходимости.

Лично, наличие кода в нескольких кадрах сводит меня с ума. У меня был бы весь код, который воздействует на вещи на верхнем уровне только в одном месте, предпочтительно в пользовательском классе документа для вашего swf, или в верхнем слое первого кадра, например, в слое «Action». Затем я добавлю код, специфичный для каждой «Страницы» в своем собственном классе, либо в пределах его определенного класса «экспорт в ActionScript», либо таким же образом, как ваш код верхнего уровня в слое «Действие» соответствующего MovieClip.

Надеюсь, это поможет.

0 голосов
/ 13 марта 2012

Краткий ответ, сначала создайте movieClip (), затем щелкните внутри него, удалите его содержимое, теперь начните делать то же самое снова на этой временной шкале, но поместите весь свой код в основную временную шкалу и обратитесь к имени экземпляра, например

  AllmyClips.gotoAndStop(1);
  // allMyClips is the instance name 

  if(allMyClips.textbox1.text == "bob" && allMyClips.passwordbox.text == "thispassword"){
      AllmyClips.gotoAndStop(2);
    }

Это так просто, просто button1.addEventListners и добавьте вышеупомянутое в функцию ();

теперь все viarbles могут быть глобальными и простыми в использовании, если вы можете загрузить куда-нибудь fla, и я исправлю это для вас, мне скучно, так что никаких проблем, и у вас не должно быть больших невидимых клипов на заднем плане

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