][-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(); |