Опубликован: 07.11.2006 | Уровень: специалист | Доступ: платный
Лекция 16:

Интеграция динамических данных

< Лекция 15 || Лекция 16: 12345 || Лекция 17 >
Аннотация: В данной лекции рассматриваются способы облегчить обновление контента сайта. Описаны функция loadVariables и объект loadVars.

Работа с внешними файлами

Внимание! Для работы с этой лекцией необходимы учебные файлы, которые Вы можете загрузить здесь.

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

Задача отделения содержимого от разработки сайта становится особенно неудобной, когда текст, который клиенту необходимо заменить, находится внутри сайта, использующего Flash. Немногие компании имеют ресурсы или навыки работы с кодом Flash и анимацией, даже если разработчик был достаточно предусмотрительным и приложил исходные файлы. Содержимое сайта должно обновляться регулярно после завершения его разработки, и организации, заказавшие веб-дизайнерскую деятельность, не желают возвращаться в компанию, разработавшую их сайт, для того, чтобы изменить параграф текста на странице. Это не только дорого, но и недопустимо долго. Это одна из преград на пути регулярного обновления большинства веб-сайтов.

В этой лекции мы научимся сохранять содержимое вне фильма Flash в обычных редактируемых текстовых файлах и познакомимся с методами, с помощью которых можно добавлять данные во Flash в режиме реального времени. Здесь содержимое успешно отделяется от разработки самой страницы, файлы SWF остаются "тайной" разработки сайта, а содержимое находится в обновляемых текстовых файлах и базах данных с использованием сценариев серверной части или в файлах XML.

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

Текстовый файл

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

counter=1

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

variable1=value1&variable2=value2&variable3=value3

Формат текстового файла определяется типом MIME "application/x-www-form-urlencoded", этот формат используется в веб-приложениях, вчастности, для передачи данных из формы HTML в сценарий серверной части для обработки.

Для удовлетворения этому стандарту значения, содержащиеся в текстовом файле, должны быть закодированы таким образом, чтобы не содержать пробелов или других недопустимых символов. При строгом соответствии каждый символ, не являющийся численным или буквенным, должен быть закодирован, однако Flash в этом довольно гибок и позволяет использовать большинство символов пунктуации и других знаков. Однако знак равенства, амперсанд и пробелы должны быть закодированы. Амперсанд должен быть закодирован, так как он означает разделение переменных, а знак равенства - поскольку используется в объявлении переменных.

Кодирование символа представляет собой замену символа знаком процента с последующим шестнадцатеричным значением для этого символа. Знак равенства превращается в "%3D", а амперсанд становится сочетанием "%26". Пробел станет "%20" или "+".

Итак, текст

Energy = mass divided by the speed of light all squared

превращается либо в

Energy%20%3D%20mass%20divided%20by%20the%20speed%20of%
20light%20all%20squared

либо в

Energy+%3D+mass+divided+by+the+speed+of+light+all+squared

Чтобы помочь вам правильно форматировать текстовые файлы, я написал небольшую утилиту Flash, которая позволяет кодировать переменные и значения и копировать их в текстовый редактор для сохранения. Файлом Flash является encode.fla, который можно найти на компакт-диске в папке Chapter 15. Для генерирования файла кодируемого текста вводите пары имен и значений последовательно, между каждыми из них нажимая Add Variable. Каждый раз при щелчке на команде Add Variable, кодируемое текстовое поле будет обновляться для включения последней добавленной переменной.



Эта утилита использует объект loadVars, который мы рассмотрим в следующем параграфе, и частично метод toString, который обеспечивает нас закодированным URL-представлением всех переменных, содержащихся внутри объекта.

< Лекция 15 || Лекция 16: 12345 || Лекция 17 >
Игорь Хан
Игорь Хан

у меня аналогичная ситуация. Однако, если взять пример из приложения (ball_motion_04_click for trial.fla) то след остается. при этом заметил, что в моем проекте в поле "One item in library" виден кружок, в то время как в приложенном примере такого кружка нет.

Вопрос знатокам, что не так?

Александр Коргапольцев
Александр Коргапольцев

объект созданый мной упорно не желает оставлять след(единственное что добился, так это то что шарик резво гоняется за курсором) функция duplicateMovieClip остаётся не активной, т.е. следа от объекта не остаётся, но если я тоже самый код вбиваю в учебный файл всё работает, не могу понять где я ошибаюсь и почему в документе созданном заново, не работает код начиная от функции duplicateMovieClip? 

Тамара Ионова
Тамара Ионова
Россия, Нижний Новгород, НГПУ, 2009
Магомед Алисултанов
Магомед Алисултанов
Россия, Волгоград, лицей 2