2012-03-11 2 views
2

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

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

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

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

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

Timeline screenshot from my Flash Video/Photo Gallery Project

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

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

ответ

2

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

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

Я надеюсь, что это поможет.

+0

Звучит интересно , Но тогда мне не нужно ничего определять на уровне дизайнера. У меня был бы только один слой и один кадр с кодом ActionScript. Тогда я создам все мувиклипы, сделав их невидимыми, кроме клипа для входа и сделаю все. Я думал, что для каждой страницы, как на моем скриншоте, есть ключевые кадры, что делает мой проект флеш-памяти более чистым, я имею в виду, что у меня хорошая читаемость и что-то, что я мог бы назвать модулярностью, поскольку все разделено. Я думаю о том, что только один класс действует как переключение PageManager между MovieClips. Благодарю. – NovumCoder

+0

Если вы выбрали маршрут видимости, у вас все еще могут быть все слои, только с 1 кадром. Вы можете обрабатывать все это в коде, но без слоев, если хотите. – ToddBFisher

0

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

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

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

Его простое нажатие кнопки button1.addEventListners и выкидывание выше в функции();

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

Смежные вопросы