|
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
Реящий флаг.
Привет!
Подскажите пожалуйста, как мне заставить этот флаг "гордо реять" ну или хотябы реалистично трепыхаться. А то у меня получается, что он только едет и дергается... Помогите пожалуйста |
|
|||||
лучше сделай новый...этот безнадежен)))
|
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
Ой.
Ой, блин, ну как-же так? или Вы это про клипвобще? там есть такая картиночка с флагом, я вот подумала если её заставить двигаться не по прямой, а зигзагом, то возможно, что-то и получится... Вы как думаете?
|
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
Чуть подправила.
Вот! Я тут чуть подправила... может теперь этот флан будет не так сильно безнадежен... Ну пожалуйста мне очень хочется сделать именно этот флаг или что-то похожее.
|
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
|
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
Здорово! а можо объяснить теперь это для блондинки?
А может ктонить объяснить теперь это для блондинки?
И как это применимо к в моем флажке? Пожаааалуйста, ну покажите мне как это делается... я обещала до среды сдать контрольную... /*************************************** автор: silin ****************************************/ MovieClip.prototype.sinFly=function(){ var b=this._parent this.vx += (this.ix - this._x)/24 this.vy += (this.iy - this._y)/24 this._x += this.vx*=0.85; this._y += this.vy*=0.85; this.iy= this._name==5? b[3].iy+b.h : this.y0+0.05*b.h*(Math.sin(b.age/5+Math.PI/2.3*this._name)) this.ix=this.x0+0.025*b.w*(Math.sin(b.age/7+Math.PI/2*this._name)) } /////////////////////////////////// MovieClip.prototype.addFlag=function(s,link){ var width=this._width,ws=width/s,height=this._height; var prop={_x:this._x,_y:this._y,_rotation:this._rotation} var f=this._parent.createEmptyMovieClip(this._name,this.getDepth());//заменяем пустым for(var i in prop) f[i]=prop[i]; for (var i=0;i < s;i++) {//добавили нарезку var p=f.attachMovie(link,i,i,{x:i*width/s}); if(f._rotation&&!i){width=p._width; height=p._height;ws=width/s;}//если повернут, то width&height другие var m = p.createEmptyMovieClip('m',1); m.beginFill(0); m.moveTo(ws*i,0);m.lineTo(ws*(i+1)+0.5,0);m.lineTo(ws*(i+1)+0.5,height);m.lineTo(ws*i,height); m.endFill(); p.setMask(m); } /////////отблеск (он же потом как маска пойдет)/////////////////////////////////////////////// var w=0.96*width;//отступы var h=0.96*height; var xy=[]//массив для исходных координат for(var i=0;i<4;i++)xy.push({x:i*w/3,y:0})//4 по верхней кромке xy[4]={x:w,y:h/2}//правая for(var i=0;i<4;i++)xy.push({x:w-i*w/3,y:h})//4 по низу xy[3].c=xy[5].c=1; //метки углов var b=f.createEmptyMovieClip(100,100); b._y=0.01*h; b.w=w b.h=h b.len=xy.length b.age=random(21); for (var i=0; i<b.len; i++) {//мувики для контроля точек var p=b.createEmptyMovieClip(i,i); p.x0=p.ix=p._x=xy[i].x p.y0=p.iy=p._y=xy[i].y; p.vx=p.vy=0; p.c=xy[i].c if(i&&i<b.len-1) b[i].onEnterFrame=sinFly; } b.onEnterFrame=function(){ this.age++ this.clear(); var colors=[],alphas=[],ratios=[0] for(var i=0;i<5;i++) { alphas[i]=20+7*Math.sin(this.age/7+i) colors[i]=i%2 ? 0xcccccc : 0x333333 if(i)ratios[i]=this[i]._x/w*196 } ratios[4]=255 var fi=Math.PI/2+Math.atan2(this[3]._y-this[5]._y,(this[3]._x-this[5]._x)/2) var matrix = {matrixType:"box", x:0, y:0, w:width, h:h, r:fi}; this.beginGradientFill("linear", colors, alphas, ratios, matrix); this.moveTo( this[0]._x, this[0]._y); for (var i=0;i<this.len-1;i++){ this.curveTo(this[i]._x, this[i]._y, (this[i]._x + this[i+1]._x)/2, (this[i]._y + this[i+1]._y)/2) if(this[i+1].c) this.lineTo(this[i+1]._x,this[i+1]._y) } this.lineTo(this[this.len-1]._x,this[this.len-1]._y) this.endFill() } ////////////////двигаем нарезку//////////////////////////// f.onEnterFrame=function(){ var w=width/s,n=[0],dy=[0],r=[0] for(var i=1;i<3;i++)r[i]=b[i]._x; r[3]=width; for(var i=1;i<4;i++){ n[i]=Math.floor(r[i]/w); dy[i]=(b[i]._y-b[i-1]._y)/(n[i]-n[i-1]) for(var j=n[i-1];j<n[i];j++){ this[j]._y=b[i-1]._y+(j-n[i-1])*dy[i] } } for(var i=1;i<3;i++)r[i]=b[8-i]._x; for(var i=1;i<4;i++){ n[i]=Math.floor(r[i]/w); dy[i]=(b[8-i]._y-b[9-i]._y)/(n[i]-n[i-1]) for(var j=n[i-1];j<n[i];j++){ var by=b[9-i]._y+(j-n[i-1])*dy[i] this[j]._yscale=(by-this[j]._y)/h*100 } } this.setMask(b.duplicateMovieClip('m',101))//кладем под маску для красивости } } ///////////////////////////////////////////////////////////////////// pic.addFlag(24,'flag');//flag - linkage id в библиотеке for(var i=1;i<9;i++) { this[i].gotoAndStop(i) this[i].onRelease=function(){ //меняем содержимое for(var j=0;j<24;j++)pic[j].gotoAndStop(this._name) } } Последний раз редактировалось iNils; 25.12.2006 в 09:38. |
|
|||||
а вот еще и с тенью
__________________
"We Are The Champions My Friends!" Queen |
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
хм...
С этого я и начинала... пустить картинку по маске, но что-то у меня не срастается ничего.
Товарищи мужчины ну объясите пожалуйста как использовать этот код, применительно к моей картинке. Очень Вас прошу! |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Лучше переделать то, что есть. Там в либе лежит мувик, в нём в каждом кадре отдельный флаг. Там надо просто нарисовать свой и всё.
А вообще, кажется iNils показывал пример флага, который работает с DisplacementMapFilter, там всё проще. Тему я искал, но что-то не нашёл… |
|
|||||
Регистрация: Dec 2006
Сообщений: 13
|
Попробую
Сейчас попробую.
|
Часовой пояс GMT +4, время: 09:57. |
|
« Предыдущая тема | Следующая тема » |
|
|