Беларусь, рогачёв |
Работа флэш-программ в Internet
Возможные проблемы
В этом разделе коротко обсудим ряд моментов, которые могут вызвать неработоспособность флэш-проекта при выкладывании его в Интернет (часть из них уже была рассмотрена детальнее в других лекциях).
Веб-серверы на Unix/Linux и Case-sensitivity
Как вы знаете, файловые системы Unix и Linux чувствительны к регистру (в отличие от Windows). Это касается также и HTTP-запросов к веб-серверам, работающим под управлением Unix/Linux. Поэтому у вас может возникнуть такая ситуация: пока вы тестируете флэш-проект с Windows-веб-сервера, все работает прекрасно, а как только выкладываете на Unix/Linux - все перестает работать.
Вам придется внимательно пересмотреть все пути, которые используются внутри флэш-ролика, например, пути runtime sharing, параметры URL LoadVars, XML и подобных средств, и заменить большие буквы на маленькие (или наоборот). Это можно автоматизировать с помощью, например, UltraEdit, который позволяет заменить одну строчку на другую сразу во многих файлах (имеются в виду *.fla-файлы). Редактировать файлы придется, разумеется, в бинарном режиме (впрочем, UltraEdit сам разберется).
Иногда во *.fla-файлах остаются старые, не используемые более пути, и тогда бывает сложно найти, что требуется заменить. В таких случаях можно просмотреть *.swf-файлы (предварительно нужно отключить ихсжатие: Publish Settings / Flash / Compress Movie ), в которые попадают только действительно используемые пути.
MacOS и механизмы типа LoadVars
Допустим, вы используете LoadVars для работы с ini-файлами. Под Windows, если в запрашиваемом файле ничего нет или нет самого файла, все работает прекрасно, но под MacOS все не так замечательно: при выполнении хотя бы одного из двух условий флэш-плеер будет очень долго ожидать, в результате время загрузки увеличится в несколько раз.
Поэтому сделайте пустые ini-файлы (или другие соответствующие файлы, которые вы используете) и запишите в них по одной строчке, например: __somevar = somevalue.
runtime-загрузчики
Если вы используете runtime sharing, и ваш проект перестает работать, как только вы его выкладываете на веб-сервер, возможно, дело в том, что вы не используете runtime-загрузчики. Детальнее об этом см. в лекции "Методика организации командной работы над Flash-проектом" в разделе " Runtime sharing ".
Контролируемая загрузка клипов
Опять же, если вы используете runtime sharing, и ваш проект перестает работать, как только вы его выкладываете в Интернет, возможно, у вас "рассинхронизировались" *.swf-модули в результате увеличения времени загрузки. Детальнее об этом см. в лекции "Методика организации командной работы над Flash-проектом" в разделе " Runtime sharing ".
Кстати, механизм контролируемой загрузки может стать, в свою очередь, причиной неработоспособности проекта (если модулей загрузилось меньше, чем ожидалось, флэш-ролик будет находиться в вечном ожидании и никогда не загрузится).