Сайт журнала WebDix
Сохранение данных из flash-ролика
Колонка редактора Веб-дизайн Раскрутка Раскрутка Программирование Уроки Photoshop Уроки Flash Журнал Софт Юмор

Menu:


Ageofcomp.ru - здесь всегда весело!

RusForumz.ru
Огромное количество статей по веб-дизайну, раскрутке, анимации, оптимизации и программированию. Всем читать!
Подробнее

Ageofcomp.ru
Вторая, неофициальная часть форума RusForumz.com. Если хочется отдохнуть и развлечься, приходи на этот форум. Зажжём!
Подробнее

Ageofcomp.info
Блог одного из авторов журнала - Exact'a. Ежедневное обновление приучит вас начинать день с блога Ageofcomp.info
Подробнее


БЫСТРЫЙ ПЕРЕХОД

Сохранение данных из flash-ролика

Автор: Nikitar
Сайт: Rusforumz.com


Очень часто приходится отвечать на вопросы про сохранение данных из flash-ролика. Сегодня попробую ваше любопытство удовлетворить. Правда говорить мы будем о сохранении данных на компьютер пользователя, а не на сервер. Начну, пожалуй, с начала. У flash'a есть такая замечательная функция как LocalSharedObject работает она примерно также как Cookies. То есть можно сохранить какие-то данные, но в ограниченном количестве, а потом также с помощью этого же файла их прочитать. Когда это удобно? Например, звук. Он у нас играет на странице, играет, есть кнопка выключить, пользователь судорожно её жмёт, потому что вообще-то ночь на дворе, а колонки на полную играют. Звук выключается, всё ок, пользователь успокаивается. Переходит на следующую страничку, а у него опять музыка врубается. Что надо сделать? Правильно, запомнить выбор пользователя и уже включать то, что ему нравится.

Ну а сегодня мы займёмся очень простой вещью, но хорошо демонстрирующей, как можно сохранять, а главное потом извлекать данные. Подробнее о сохранении будет написано в специальном приложении к журналу WebDix, которое будет полностью посвящено flash'у. Так что ждите! А пока промотайте вниз страницы, там должен быть серый квадрат, передвиньте его на любое место, а затем заново зайдите на эту страницу. Видите? Квадрат на том же месте, где вы его оставили. Теперь делаем эту штуку.

1. Открываем Flash. Делаем файл с любыми размерами (у меня, если кому интересно 550x200) и fps 25.

2. Рисуем квадратик и делаем из него мувиклип (выделяем - нажимаем F8 - в открывшемся окне выбираем movieclip - и жмём ОК). Затем выделяем его и в instance name (кто не знает где это, смотрите рисунок ниже) называем kvadrat.

Где же находится этот instance name?!

3. Теперь собстивенно будем сохранять и двигать его. Для этого выделяем кадр и вводим туда следующий код:

var my_so:SharedObject = SharedObject.getLocal("kv");

Этой строчкой мы создали LocalSharedObject, который назвали переменной my_so, в виде файла он будет у нас сохраняться именем kv. Сразу же скажу, что файл этот будет не текстовым, и открыть мы его не сможем никакой другой программой, кроме flash-плеера, да и то зная только, что мы туда сохраняли (какие переменные). Собственно, продолжаем дальше писать в тот же кадр.

if(my_so.data.kv_x==null and my_so.data.kv_y==null){
   my_so.data.kv_x=100;
   my_so.data.kv_y=100;
}

kvadrat._x=my_so.data.kv_x;
kvadrat._y=my_so.data.kv_y;

Первая часть кода отвечает за первый раз, то есть когда файл ещё пустой и нам загружать нечего. Тоже самое произошло, как только вы открыли эту страницу, тогда мы сохраняем в файл координаты квадрата 100 и 100. Второй частью кода мы считываем координаты квадрата и присваимваем их квадрату. Как вы уже догадались my_so.data.kv_x - это способ вызвать значение переменной из файла, название которого содержится в переменной my_so. Продолжаем писать код, далее вы узнаете как сохранять данные.

function kvadrat_fn(){
   my_so.data.kv_x=kvadrat._x
   my_so.data.kv_y=kvadrat._y
}

// Передвижение квадрата
kvadrat.onPress=function(){
   this.startDrag();
}
kvadrat.onRelease=function(){
   this.stopDrag();
   kvadrat_fn()
}
kvadrat.onRollOut=function(){
   this.stopDrag();
   kvadrat_fn()
}

Сначала делаем функцию kvadrat_fn, которая собственно и сохраняет координаты квадрата. Как видите, это очень и очень просто. Далее идёт собственно передвижение квадрата, метод drag and drop уже был как-то описан, поэтому описывать ещё раз не буду. Важно, что при отпускании или при уведении мышки с квадрата у нас выполняется функция сохранения данных.

4. Ну вот и всё! Теперь просто нажимаем ctrl+Enter и передвигаем квадрат, затем закрываем, заново нажимаем ctrl+Enter и наслаааааждаемся увиденным!



ВНИМАНИЕ: Вы можете скачать исходник к данному уроку и самостоятельно разобраться что, куда и сколько раз. Исходники всех уроков выложены в Школе Флэша, которая располагается на портале RusForumz.com. Условия доступа в Школу Флэша

СКАЧАТЬ ИСХОДНИК