Учебный курс Flash

Учебный курс
Примеры выполненных заданий
Подписка на рассылку
Форум
Чат
Скачать
Ресурсы, ссылки
Flash на практике
Translate into
RB2 Network

RB2 Network






выпуск 17

интерактивность и ActionScript часть-5


    Работая над заданием прошлого выпуска, Вы могли обратить внимание, на необходимость прокрутки больших сообщений на дисплее пейджера. Конечно, можно просто щелкнуть мышкой на нужном текстовом поле и нажимаю кнопки перемещения курсора, прокрутить текст. Но, часто приходится отключать доступ пользователя к тексту, блокировать выделение и копирование текста (об этих возможностях рассказано в 12 выпуске).

    Тем не менее, необходимо обеспечить комфорт для пользователя при просмотре Вашего сайта. Создавая любой проект, помните, что человек может просто не догадываться о тех возможностях, которые Вы использовали. Самый простой способ обеспечить прокрутку текста - создать клип с этим проплывающим текстом (Вы уже можете без проблем это сделать). Но у посетителя Вашего сайта есть полное право, требовать от вашей работы удобства. Основное правило, которым следует руководствоваться при создании собственного сайта:
- "Все, что Вы делаете, Вы делаете не для себя, а для тех, кто будет смотреть ваше произведение и если Вы не можете обеспечить простоты и удобства для клиента, то это Ваши проблемы и никогда не нужно обвинять клиента в глупости".

    Мы все привыкли к стереотипам. Если на экране есть текст непомещающийся в отведенное ему окно, то мы неосознанно двигаем мышь к правому краю в поисках полосы прокрутки. Если мы видим кнопку, то нам хочется на нее нажать и посмотреть, что будет. В случае с текстом необходимо предусмотреть его прокрутку по желанию зрителя, а если есть кнопка, даже непохожая на обычную кнопку, ее необходимо располагать в ожидаемом месте. Так Вы избежите ситуации, в которой, показывая кому-то, белый лист бумаги будете утверждать, что на нем нарисован белый медведь, которому срочно понадобилось зайти во-о-он за тот белый айсберг. :-)

    Как же заставить текст в поле перемещаться в зависимости от нажатой кнопки? У текстовых полей есть два замечательных параметра:
scroll - определяет номер верхней строки в поле
maxscroll - вычисляет номер последней верхней строки, т.е. номер строки, которая будет верхней в поле после прокрутки всего текста

    Применяя оба эти параметра, Вы можете без проблем организовать догрузку следующих текстовых блоков по мере чтения материала или любые другие эффекты.

А, теперь усовершенствуем пейджеры из прошлого задания.
    Предположим, что у нас есть пейджер с текстовым полем "pole" в качестве дисплея, которое может вместить в себя 2-3 строки: надеюсь, при создании текстового поля Вы не забыли включить режим многострочности и переноса по словам?
    Добавим к нему две кнопки прокрутки. Для одной из них зададим прокрутку текста вниз, т.е. мы будем увеличивать значение номера верхней строки для свойства scroll, а второй кнопкой - его уменьшать.
Скрипт для первой кнопки, в нашем случае, будет выглядеть так:
On (Release)
    Set Variable: "pole.scroll" = pole.scroll + 1
End On


    Осталось, назначить второй кнопке аналогичный скрипт, но уменьшающий значение "pole.scroll".

    Не станем останавливаться на достигнутом, и усовершенствуем терминал. До этого, для оправки сообщения на нужный пейджер, Вы нажимали на соответствующую кнопку. Но ведь на настоящих пейджинговых станциях нет пультов с перечнем всех номеров абонентов. Не должно быть их и у нас! Добавим к терминалу еще одно редактируемое текстовое поле, в которое будем вводить номер нужного пейджера и отправлять сообщение нажатием на одну-единственную кнопку. Если с окошком для номера у нас проблем не должно возникнуть, то как определить на какой же пейджер оправлять сообщение, даже если введен его номер? В этом нам поможет действие "If".

If - условный оператор, определяющий последовательность действий в зависимости от истинности заданного условия.
Полностью выглядит следующим образом:
If (условие)
    Действие (одно или несколько), если условие верно.
Else
    Если нет, то выполняется данное действие
End If


    В нашей жизни мы постоянно стоим перед выбором, что сделать в конкретной ситуации, что ответить на услышанное, читать этот выпуск дальше или удалить его с компьютера и т.д.
    Типичным примером реализации алгоритма выбора является фрагмент сказки знакомой нам с самого раннего детства:
…"И остановился Иван царевич (Илья Муромец, добрый молодец и др.) перед камнем, а на камне том надпись; на право пойдешь - деньги найдешь, налево пойдешь - красну девицу встретишь, а прямо пойдешь - голова с плеч".

На ActionScript это можно записать так:
If (Ivan eq "Right")
    Go to and Stop ("Money")
Else If (Ivan eq "Left")
    Go to and Stop ("PrettyGirl")
Else If (Ivan eq "Forward")
    Go to and Stop ("Death")
Else
    Go to and Play ("GoBack")
End If


    Обратите внимание на используемый символьный оператор "eq", который мы применяем в данном случае для проверки переменной "Ivan". Если бы мы записали:
If (Ivan = "Right")
это было бы неправильно, т.к. мы в данном случае проверяем переменную на соответствие символьному значению.
Else If используется, если необходимо проверить переменную на соответствие нескольким значениям. Включается "Else" или "Else If" в действие "If", следующим образом:
  • Включите действие "If"
  • После введения условия проверки и действия выделите строку с действием "If"
  • Нажмите кнопку "Add Else/Else If clause"
  • Перед завершающей командой "End If" появится "Else", когда вы выделите строку "Else", то сможете изменить ее на "Else If"
    Теперь можно легко проверить какой номер введен и отправить сообщение на нужный пейджер. Попробуйте, сделать это самостоятельно.

    Использование условного оператора "If" дает большие возможности в реализации задуманных проектов. Кроме решения чисто технических вопросов при работе над проектом, условные операторы можно применить для большей интерактивности сайтов. Теперь, без сложных запросов cgi и перепроверки администратором сервера, Вы можете организовать "вход по пропускам", т.е. по паролю к различным частям Вашего сайта. Конечно, это не обеспечит полной защиты данных html страниц, но обеспечить запрет перехода на следующие сцены посторонним, вполне возможно.
    Элементарнейшим образом решаются вопросы создания сайтов по прохождению различного рода тестирования и т.д. без знания JavaScript.

Домашняя задание:
    До сих пор, Вы работали по моему сценарию, но на этот раз я решил не сдерживать Вашу фантазию. Принимаются любые Ваши работы, но только при условии, если они содержат материал последних двух выпусков:
    Необходимо придумать собственный сценарий и осуществить его. При реализации проекта, обязательное использование ActionScript - действий Set Variable, If и режима ручной прокрутки текста.
Желаю удачи!
Работы принимаются до 19-го сентября 2000 года

В завершении выпуска, еще несколько слов:
    Создавая любой проект и используя при этом ActionScript, стремитесь максимально оптимизировать и универсализировать код скрипта.
    Есть простое правило, определяющее уровень работы любого программиста
- "код программы хорош, только в том случае если его можно использовать без переделки в другой программе".
ActionScript не является исключением. Старайтесь писать скрипт, так чтобы при изменении проекта не приходилось заново переписывать все подпрограммы.
    Например, Вы написали скрипт, определяющий введенный номер и посылающий сообщение на нужный пейджер. Но вот вы решили добавить еще пару пейджеров, Вам придется дописывать новые строки "Else If", хотя можно всю эту подпрограмму заменить одной единственной строкой и в дальнейшем Вы сможете добавлять или удалять пейджеры без изменения самого скрипта.
    Разумеется, проект с пейджерами приведен только в качестве примера, но уверен смысл необходимости создания универсальных модулей Вам ясен.
    Кстати, кто из Вас догадался, как создать универсальный код для отправки сообщения по нужному номеру? Подчеркиваю, что все необходимые знания для этого Вы уже имеете!

    Итоги, предыдущих двух заданий будут подведены в следующем выпуске, а примеры присланных работ можно посмотреть после выхода этого номера, на сайте "Учебный курс Flash".


Павел Г.Лапин
E-mail: murmik@mail.ru
Россия Мурманск



Всплыть