][-Desktop

FlashMailer

Спецвыпуск Xakep, номер #023, стр. 023-074-3


Во втором кадре на второй слой пихай символы "B - MailClose" и "C - Fon". Клип "C - Fon" ставь туда же, куда ставил "B - MailStart" в первом кадре. В панели Instance дай ему имя "fon". "B - MailClose" ставим ровно над клипом фона (X=0; Y=125). Кадр с этими двумя символами растяни (не скопируй, а именно растяни!) до четвертого кадра, т.е. так, чтобы он был и во втором, и в третьем, и в четвертом кадрах.

Во второй кадр слоя скриптов вбивай:

if (fon._width<500) {

fon._xscale=fon._xscale+40;

fon._x=500-fon._width/2;

}else if (fon._height<(t*30)) {

fon._yscale=fon._yscale+40;

fon._y=160+fon._height/2;

}else gotoAndPlay(4);

А в третий поставь gotoAndPlay (2), т.е. ссылку обратно на второй кадр.

Все это делает вот что: клип "fon", а то есть наш квадрат с закругленными краями, будет растягиваться вначале вширь (до ширины в 500 px), а потом в высоту (до высоты t*30, где t - это количество мыльников в меню, а 30, как ты помнишь, это высота кнопки "B - Link").

Сечешь, про что я? А я про то, что мы с тобой самые извращенные перцы мира сего (ну... почти самые извращенные перцы :))). Второй и третий кадры вместе с символом "C - Fon" нужны для создания фона меню соответствующего размера.

У нас остался незадействованным еще третий слой. Туда, растянув это дело на все четыре кадра, кидай клип "C - List". Назови его "list" и перетащи его влево так, чтобы он оказался полностью левее центра Рабочей области.

Теперь в четвертый кадр верхнего слоя вносим скрипт создания пунктов меню:

i=1;

while (i<=t) {

list.duplicateMovieClip("list"+i,i);

this["list"+i]._x=0;

this["list"+i]._y=160+30*(i-1);

this["list"+i].text=this["text"+i];

i++;

};

stop();

Объясняю. Тело цикла while повторяется t раз. Штучка list.duplicateMovieClip("list"+i,i) создает копию клипа "list", задает ей имя "list"+i и располагает ее на i-ом уровне. Страшную на первый взгляд конструкцию this["list"+i] ты легче освоишь на примере: "this["list"+i]._x" при i=2 будет эквивалентно "list2._x". Понятно? Так вот, вновь созданным клипам мы присваиваем такие координаты, что они выстраиваются друг под другом ровно над уже растянутым мувиком "C - Fon". Помнишь, у клипа "C - List" в кнопке было динамическое текстовое поле с именем "text"? Вот именно в него и заносится теперь значение переменной this["text"+i].

Внутри символа "Mailer" осталось только одно - доделать кнопочку "B - MailClose". Она должна не просто возвращать нас к первому кадру, но и уничтожать все эти копии клипа "C - List", которые мы тут наделали. Вводи для нее:

on (rollOver) {

_root.main.bomb._x=_xmouse;

_root.main.bomb._y=_ymouse;

startDrag(_root.main.bomb);

Mouse.hide()

}

on (rollOut) {

stopDrag();

_root.main.bomb._x=-200;

_root.main.bomb._y=-200;

Mouse.show()

}

on (press) {

tellTarget (_root.main.bomb) {

gotoAndPlay (2);

};

i=1;

while (i<=t) {

_root.main.mailer["list"+i].removeMovieClip();

Назад на стр. 023-074-2  Содержание  Вперед на стр. 023-074-4