FlashWorld :: Flash и около

Saturday, December 31, 2005

С новым годом всех!

Monday, December 26, 2005

Создаем себе праздничное настроение. Снегопад во Флэше.

Зима. Скоро новый год. В моем городе снега уже достаточно. Но есть такие экземпляры городов, где функция Zima(); вызывается с аргументом snow=false :) Или, возможно, вы хотите, чтобы снег был не только на улице но и во Flash'e. Всё это исполнимо. Приступаем к исполнению...

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

Открываем Флэш, устанавливаем размеры сцены, фон и FPS (я ставил 25).
Рисуем снежинку. Особо мудрить не стоит, так как их будет много и за их индивидуальностью никто следить не будет. Я просто взял кисть и поставил ей точку - снежинка готова. Выделяем снежинку, тыцкаем F8, выбираем MovieClip. В панели свойств напишите её имя "sn", без кавычек. Всё, теперь приступаем к скрипту.
Это пишем в действиях муви-клипа снежинки:


onClipEvent(enterFrame){
//снежинка падает. random здесь стоит, чтобы
//снежинки обгоняли друг друга и каждая летела со
//своей скоростью. +3 после random'a для того, чтобы
//при значении 0 снежинка продвигалась хотя-бы на 3 пикселя,
//а то матрица какая-то получится...
this._y += random(6)+3;
//если снежинка улетела за нижний край экрана, возвращаем наверх.
//пусть снова падает :) И поменяем _x - чтобы снегопад менялся.
if(this._y > 400){
this._y = -5;
this._x = random(400);
}
//эти строчки пригодятся если вы будете делать "сдувание" снежинок:
if(this._x > 400){ this._x = 1}
if(this._x < 0){ this._x = 400}
}


Это всё. Теперь можете нажать CTRL-Enter и посмотреть как одна снежинка носится по экрану. Для снегопада нам понадобится чуть побольше снежинок чем одна. Конечно, можно их прямо сейчас скопировать и разбросать по эрану, но профессионалы так не делают :) Открываем Панель действий кадра. Пишем это:


i = 1 // переменная-счетчик. ставим начальное значение 1.
ii = 100 // кол-во снежинок. 100 - хватит.
while(i < ii){
//дублируем одинокую снежинку
_root.sn.duplicateMovieClip("sn"+i, i);
//задаем для новой снежинки координаты:
_root["sn"+i]._y = random(400);
_root["sn"+i]._x = random(400);
// и размер:
scale = random(50)+50
_root["sn"+i]._xscale = scale;
_root["sn"+i]._yscale = scale;
i++
}


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


// по движению мыши происходят такие события:
_root.onMouseMove = function(){
si = 1 // еще одна переменная-счетчик для еще одного цикла.
// с интервалом в 100 миллисекунд узнаем координату мыши и обзываем её oldm:
setInterval(function(){_root.oldm = _xmouse}, 100);
while(si < ii){
// если oldm < текущей координаты "сдуваем" снежинки вправо (опять random :)
if(_root.oldm < _xmouse){_root["sn"+si]._x+= random(3)}
// аналогично, только край экрана - левый и сдуваем в другую сторону:
else if(_root.oldm > _xmouse){_root["sn"+si]._x-=random(3)}
si++
}
}


Теперь вы можете уже в третий раз нажать CTRL-Enter. Получился довольно симпатичный снегопад. А если у вас по какой-то причине снегопада не получилось, то вот исходник. Счастливого Вам Нового Года!

Достоинства.
1. 510 байт! (в моем варианте)
2. Несильно грузит проц. При 100 снежинках загрузка была где-то 20-30%

Недостатки.
1. Снежинкам не хватает кружения и покачивания. Хотя в такой "толпе" это не так и заметно и необходимо.

Когда я искал скрипт снегопада, то нашел только два. Один с классами, автор George Forest, и другой на rastyle.com. Всё, найденное на других сайтах, было копиями этих двух примеров (см. предыдущий пост :)
Если кто-то видел другие хорошие примеры снегопада, киньте линк, посмотрю.

Friday, December 23, 2005

Блоги vs рассылки и сайты.

Где можно искать всю новую и интересную информацию по Flash'y?
Ответ один: в блогах.
Вы, конечно, можете сказать, что это не такое уж ценное открытие :)
Но я хочу написать о другом.
А конкретно о ситуации в русском флэш-сообществе.
По утверждению Роста, всё это сообщество находится в глубокой жо..
Надо сказать, я был с ним не согласен, хотя и нигде это несогласие не выражал.
До некоторых пор.
Теперь же я присоединяюсь к дружному хору, кричащему что "сообщество руфлэшеров находится в...."
Почему? Ведь кроме блогов есть куча сайтов, рассылок и тд...
Будучи подписанным на несколько рассылок, от которых впоследствие с радостью отписался, посетив несколько сайтов я не нашел чего-либо интересного.
Статьи? Одинаковые на всех сайтах! Кто у кого скопировал не столь важно - вы можете посетить любой один сайт и больше никуда не ходить - везде одно и то же.
Рассылки? А как вы думаете, где авторы рассылок берут информацию? В блогах. Или вообще замечательный пример - рассылка одного сайта, который я не буду называть понятно из каких причин, приходила исправно, но с одним и тем же текстом. Спрашивается если лень выпускать новые номера, зачем вообще заводить рассылку?
Остается одно - форумы. Абсолютно ничего не имею против форума на flasher.ru - но это единственный островок флэш-комьюнити в рунете. Есть, конечно, форумы на flash-club и flash-mx, но на них мало народу. А прочитав недавно найденный мною форум о создании игр на флэше вместе с их рассылкой - вообще впал в уныние...
Вот такая ситуация, господа.
Может пора вылезать из...?

Monday, December 19, 2005

Две ссылочки

Долой прелоадеры!

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

Плюсы и минусы прелоадеров.

Пользователь видит, что загрузка идет.
Это плюс. Очень важно знать, что ролик грузится и соединение не откинуло копыта :)

Но в то же время он видит сколько еще осталось.
Это нервирует. Все познается в сравнении. И я бы не назвал мысль "Фу.. Загрузилось 34%... Еще 66% осталось..."
особенно веселой. Так же есть такой "эффект последнего процента" - при отметке 99% пользователю кажется, что последний, сотый, процент грузится очень долго... И еще: согласитесь, обидно увидеть, что загрузилось 80-90% и связь оборвалась или у вас время кончилось или еще что-нибудь помешало...

Поэтому не будем так явно показывать загрузившиеся проценты и закинем прелоадер куда-нибудь в угол.

Заполняем свободное место.

Уже вначале нужен интерактив. Пользователю будет приятно, что даже в начале своей загрузки сайт способен нести информацию. Чем же заполнить?

Мини-игра.
Простейшая игрушка а-ля "отбей мячик" или "жми на кнопку". Главное размер не больше 2-3кБ.
Суть в отвлечении пользователя на игру, чтобы на проценты не смотрел и не нервничал :)

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

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

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

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

Sunday, December 18, 2005

Флэш-кодер | Флэш-дизайнер.

Прочитал в одной теме на форуме Flasher.ru высказывыние, что с появлением AS 3.0 можно будет быть либо флэш-кодером либо дизайнером. Цитата оттуда:

...думаю, что AS3.0 раставит точки над и, никакой делитант или дизайнер программировать не сможет это уж точно и это впринципе радует :=)

И дальше рассуждения о несправедливости - почему дизайнер может рисовать и кодить,а программер не может рисовать...
Прочитал и задумался. Лично я не понимаю радости по этому поводу. Если флэш-разработчики резко поделятся на дизайнеров и программеров, Flash, как технология потеряет свою привлекательность.
Сейчас, когда уже многим наконец-то удалось вдолбить в головы, что флэш это не просто "продвинутый графический редактор" и не "прога для создания мультиков" такое разделение может очень сильно навредить. Используя Flash один(!) человек может создать мультфильм, игру, сайт, интерактивный интерфейс. Если же дизайнер не сможет написать простой код, то ему придется обращаться за помощью к программеру, и наоборот. Основное достоинство Flash - легкость в освоении и применении будет утеряно. Что же тут может быть радостного?

Wednesday, December 14, 2005

Флэш-комьюнити

Наконец-то в рунете начинает создаваться флэш-сообщество.
До этого времени были сайты, были форумы.
Там можно было найти только информацию или ответы а вопросы.
Флэшер был один.
Теперь же, благодаря Nirth'y, Antares'y и Росту в России потихоньку начинает организовываться своё флэш-сообщество.
Если вам есть что сказать - создайте свой блог и присоединяйтесь.

Безопасность во FlashPlayer 8

Появилась такая гадость - "Macromedia Flash Player stopped potenteantly unsafe operation".
У меня даже GetURL блокирует.
И самое плохое, что вся это дело без выхода в Интернет не настроишь.
Если польза от такого?
ИМХО, только вред и пользователям и разработчикам.

Saturday, December 10, 2005

Изменение размера шрифта.

Продолжая тему юзабилити.

Зрение у всех разное: кто-то видит хорошо, а кто-то не очень.
Поэтому и существует кнопка "Размер шрифта" в браузере (либо Ctrl + колесико мыши).
Но с флэшем эта кнопка не работает и размер шрифта в ролике остается, каким его сделал дизайнер. Это минус юзабилити. Это надо исправлять.

Немного теории.
Есть во Флэше такая замечательная вещь как текстовые поля. Особенно динамические. Особенно классная опция "Render text as HTML", которая позволяет юзать html-теги для форматирования текста. А какие есть хорошие html-теги? Думаю хватит теории, пора приступать к практике.


1. Запускаем Flash, открываем новый документ.
2. Создаем поле Dynamic text, назначаем ему переменную (поле Var), например, tekst и жмем кнопку "Render text as HTML"
3. В действиях кадра пишем:

_root.t = "Здесь ваш текст.";
_root.tekst = _root.t

Переменная t - это текст поля. Почему я не написал _root.tekst = "Здесь ваш текст."; станет ясно чуть позже.

4. Рисуем 3 кнопки (крупный - средний - маленький размер текста). Постарайтесь рисовать так, чтобы при первом же взгляде на них было ясно для чего они - опять-таки для улучшения юзабилити. Пользователь не должен гадать для чего та или иная кнопка.

5. В действиях для кнопки пишем:

on(press){
_root.tekst = "<font size="xx">" + _root.t + "</font>";
}

Отсюда же и понятно почему я не написал _root.tekst = "Здесь ваш текст." - чтоб "Здесь ваш текст." по четыре раза не переписывать, да и редактировать потом легче будет.
Вместо "XX" ставим нужный размер шрифта. Лично я поставил так: маленький - 10, средний - 15, крупный - 20. Но можно даже и побольше. А можно вместа тега <font> поюзать теги <h1-6>. Проще будет.

6. Это все. Получившийся файл весит 562 байта (у меня) - размер смехотворен для такого повышения юзабилити.

Вот так вот простенько...

Friday, December 09, 2005

Анти-Нильсен

Сразу ж про юзабилити и чуть-чуть около.
Нильсен не прав.
На флэше можно создать нормальный юзабильный интерфейс.
И вообще меня всегда удивляла критичность мнения известных людей.
Если флэш не пригоден - не пригоден полностью.
Разве не глупость?

Start

Приветствую всех.
Вот решил завести свой блог.
Естессно тема - Флэх.
А конкретно - создание игр, юзабилити + всякие левые мысли о флэше и вообще.
Читайте, пишите комменты.