Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #28, МАРТ 2003 г.

TIPS OF WEB: продвинутый альбом с порнушкой

Iv (dembicki@narod.ru)

Спецвыпуск Xakep, номер #028, стр. 028-110-4


};

В результате получается анимация увеличения картинки с ускорением и в конце с эффектом инерционного перескока финального размера и последующего возврата к этому размеру (во как!).

TIPSA 14

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

tmp.onRelease = function() {

_root.photo.loadMovie(this.nod.attributes.img);

_root.comment = this.nod.attributes.comment;

};

Где _root.comment - это некая переменная, которую ты можешь назначить текстовому полю, чтобы юзверь мог увидеть подпись к твоей картинке.

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

Не забудь удалить ссылку на прототип класса (только не из скрипта!) - она нам нужна была только для удобства написания скрипта: delete tmp;

TIPSA 15

Прикрывай загрузку прелоадером, чтобы юзер не сдох со скуки.

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

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

И еще: прелоадер полностью независим от других частей программы, за исключением этой фотки, и его логика устроена так, чтобы он показывался (_visible=1) только во время загрузки фотки. Да, впрочем, ты и сам разберешься - прелоадеры одна из самых исследованных областей даже среди начинающих.

mc = _root.createEmptyMovieClip("preloader", 2);

mc._x=Stage.width/2-100, mc._y=Stage.height/2-50;

mc.targ_mc = _root.createEmptyMovieClip("photo", 0);

mc.targ_mc._x = 100;

mc.createTextField("info_txt", 1, -50, 0, 1, 1);

mc.info_txt.autoSize = "left";

mc.onEnterFrame = function() {

var percents = this.targ_mc.getBytesLoaded()/this.targ_mc.getBytesTotal()*100;

if (percents == 100 || !percents) {

this._visible = 0;

return;

}

this._visible = 1;

this.clear();

this.lineStyle(5, 0x000000, 100);

this.moveTo(-100, 0), this.lineTo(100, 0);

this.lineStyle(3, 0xFF0000, 100);

this.moveTo(-100, 0), this.lineTo(percents*2-100, 0);

var str = "загрузка фотки:\r\""+_root.comment+"\"\r";

str += "размерчик:\t\t\t"+Math.round(this.targ_mc.getBytesTotal()/1024)+"\tkB,\r";

str += "ужо загружено:\t\t"+Math.round(this.targ_mc.getBytesLoaded()/1024)+"\tkB,\r";

str += "в процентиках:\t\t"+Math.round(percents)+"\t%";

this.info_txt.text = str;

};

delete mc;

TIPSA 16

Не забудь кнопки - листалки страничек - ведь фоток много! Возможно, тебе часто придется "листать" странички в будущих скриптах - бери прием на вооружение!

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

Назад на стр. 028-110-3  Содержание  Вперед на стр. 028-110-5