![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Jan 2000
Сообщений: 216
|
Эх, понесло меня на прототипы! До обидного мало уделяем мы на форуме внимания этой чрезвычайно мощной и удобной штуковине. Сейчас я это докажу.
Все мы рано или поздно начинаем дублировать клипы. Периодически у начинающих возникают вопросы по этой простой операции, да и те, кто понимает – часто переписывают один и тот же код из программы в программу, что-то там меняя, подстраивая…ну, сами знаете. Так вот, я решил сделать (и сделал-таки) нечто универсальное, позволяющее одной простой операцией дублировать клипы, сожержащие (или не содержащие) кнопки с заголовками, дублировать мувики, находящиеся внутри других, и все это можно проделать, вообще не зная, как и почему эти мувики дублируются. В случае вложенных клипов, правда, нужно будет подбирать его положение, но это не так уж и сложно. Пишем прототип. movieClip.prototype.DMC=function(n,x0,y0,dx,dy,captionName,captions){ var name=this._name; if (name.charAt(name.length-1)=="0"){name=name.substr(0,name.length-1)} var basename=name; this._x=x0; this._y=y0; this[captionname]=captions[0]; var yt=y0; var xt=x0; for (i=1;i<n;i++){ name=basename+i; yt+=dy; xt+=dx; this.duplicateMovieClip(name,i); _parent[name]._y=yt; _parent[name]._x=xt; _parent[name][captionname]=captions[i]; } } В заголовке: n- количество дублированных клипов; x0,y0 – начальное положение первого клипа (куда его переместить, вернее); dx,dy – смещения дубликатов по x и y; captionName – имя текстового поля внутри клипа или кнопки; captions – массив с заголовками кнопок. Помещаем это дело в файл с именем mylib.as. Помещаем наш мувик с кнопкой и с именем, напр. buttonBall0 куда надо (или куда попало, не важно), а в первом фрейме пишем #include mylib.as Обратите внимание: точка с запятой после этого НЕ НУЖНА! Пишем caps=new array("dog","cat","bear","beer","cool beer"); это будут наши заголовки. Наконец, buttonball0.dmc(5,70,100,10,70,"caption",caps); stop(); Все! Вы можете вообще ничего не знать о том, как дублируются клипы и как работает прототип, он будет работать и без вашего понимания, с любыми именами и заголовками. Этот материал с более-менее подробными разъяснениями я попытался выложить в уроках, но что-то, наверное, не заладилось, не знаю. Может, появится когда-нибудь. А пример для демонстрации я выкладываю. Если кто-нибудь захочет улучшить мой вариант - буду рад посмотреть. Надеюсь, что этот пример сподвигнет вас на написание иных прототипов. Со временем можно было бы организовать для прототипов отдельный раздел, как это сделано для уроков или исходников. Мечты…
__________________
Ударим флэшем по бездорожью и разгильдяйству! VOL |
![]() |
Часовой пояс GMT +4, время: 14:19. |
|
|
« Предыдущая тема | Следующая тема » |
|
|