Просмотр полной версии : Маска
zephyrka
04.02.2006, 13:43
Извините ради Бога, если где-то такая тема есть, просто не получилось найти ни по слову "программная маска" ни по "смена картинок маской"...
Мне бы хотелось сделать программно примерно вот такую маскутолько с квадратиками. Как это осуществить?
http://prbf.ru/ (в шапке)
Спасибо!
1. руками делаем библиотечный линкейдж клип с твин анимацией полоски. В кадрах, где полоса "полная" и где сошла на нет - расставляем стоп.
2. кодом аттачим клип в контейнер, плодим его и расставляем по сцене так, чтобы полосы совмещались по границе, а клипы перекрывали маскируемую область.
3. Контейтнер делаем маской.
4. По любому временно`му событию (энтерфрейм иль интервал) командуем клипам шторкам плей по нужной очереди.
5. Кайфуем
zephyrka
04.02.2006, 21:44
я все-таки ламер чтобы понять, что вы сейчас сказали :(
Ночью сделаю примерный исходник
zephyrka
04.02.2006, 22:08
Спасибо!
глянь (принцип)
зы: монстр, не видел, что ты подписался..давй теперь примерный :)
zephyrka
05.02.2006, 03:27
Спасибо большое! пойду разбираться!
sergwizard
05.02.2006, 05:08
Если Вы непротив, я еще исходничек подкину. :)
Если Вы непротив, я еще исходничек подкину. :) :D Красиво!!!
zephyrka
05.02.2006, 17:37
Прошу прощения, я пытаюсь вот в этот код добавить третьтю картинку. в библиотеку я добавил и картинку и мувик с ней, но у меня выдаются 2 ошибки (на 38-ой и 41-ой строке) :( что не так*
this.createEmptyMovieClip("holder",1);
this.createEmptyMovieClip("holder1",3);
this.createEmptyMovieClip("holder2",5);
this.createEmptyMovieClip("qq",7);
MovieClip.prototype.onPlace = function(){
this.x = this._x;
this.y = this._y;
this.onEnterFrame = function(){
this._x+=(this.xpos-this.x);
this._y+=(this.ypos-this.y);
if((Math.abs(this._x-this.xpos)<=0.2)){
this._x = this.xpos;
this._y = this.ypos;
delete this.onEnterFrame;
}
}
}
function del(){
nam = qq["mc"+i];
for(nam in _root){
_root.qq["mc"+i].removeMovieClip();
}
holder1.swapDepths(holder);
}
function doIt(){
for(i=0;i<63;i++){
qq.attachMovie("mc","mc"+i, i);
_root.qq["mc"+i]._x = stX;
_root.qq["mc"+i]._y = stY;
_root.qq["mc"+i].xpos = Math.floor(50*i)%350;
_root.qq["mc"+i].ypos = Math.floor((50*i)/350)*50;
_root.qq["mc"+i].onPlace();
}
}
function turn() {
del();
n=(n==1 ? 0:1)
n ? (holder.attachMovie("mm","mm",1),holder.setMask(qq)): (holder1.attachMovie("mm1","mm1",1),holder1.setMask(qq)): (holder2.attachMovie("mm2","mm2",1),holder2.setMask(qq));
n ? (stX = -50,stY = -50) : (stX = 400,stY = 450) : (stX = 850,stY = 900);
doIt();
}
holder1.attachMovie("mm1","mm1",1);
id = setInterval(turn, 3000);
1. Здесь (http://novemberain.com/livedocs/Help/ActionScriptLangRef/00001153.html) описание вашей ошибки.
2. Вы "втупую" (извините) пытаетесь воткнуть свою картинку, основываясь на том, как в коде сделаны оригинальные 2. Но ведь алгоритм не предусматривает этого. Вам только лишь нужно было немного в нем разобраться и переделать под себя. Это реально.
Хотелось бы чтоб вы сделали сами основную часть работы. Поймите: интересно и нужно помогать тому, кто, что-то делает САМ и поимеет локальную проблему в коде, например. А в вашем случае, ей богу, хочется отправить вас в платный раздел. Читайте хелп, обозначте задачу и кодируйте!
Удачи!
ЗЫ. Пользуйтесь тегами [code]
zephyrka
05.02.2006, 18:17
Спасибо. Ушел разбираться.
sergwizard
05.02.2006, 19:31
Для того, чтобы подгружать картинки больше 2, нужно изменить алгоритм. Примерно вот так.
Обрати внимание на переменную "k". От нее зависит количество подгружаемых картинок. Подлинкованные имена картинок должны быть в виде "mm"+k. Т.е.: "mm0","mm1","mm2" и т.д.
zephyrka
05.02.2006, 22:28
теперь хоть что-то проясняется,
а это размеры области?
_root.qq["mc"+i].xpos = Math.floor(50*i)%350;
_root.qq["mc"+i].ypos = Math.floor((50*i)/350)*50;
Какая-то хитрая формула :(
zephyrka
05.02.2006, 22:50
то есть как это растягивать на другого размера файлы?
В словаре написано, что % - это слева направо? А как это понимать?
Блин, чувствую себя полным ламером. :((
zephyrka
05.02.2006, 23:09
получилось изменить!! :) сорри за инковиниенс!
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.