![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2006
Сообщений: 13
|
Привет!
Подскажите пожалуйста, как мне заставить этот флаг "гордо реять" ну или хотябы реалистично трепыхаться.А то у меня получается, что он только едет и дергается... Помогите пожалуйста ![]() |
|
|||||
|
лучше сделай новый...этот безнадежен)))
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 13
|
Ой, блин, ну как-же так? или Вы это про клипвобще? там есть такая картиночка с флагом, я вот подумала если её заставить двигаться не по прямой, а зигзагом, то возможно, что-то и получится... Вы как думаете?
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 13
|
Вот! Я тут чуть подправила... может теперь этот флан будет не так сильно безнадежен... Ну пожалуйста мне очень хочется сделать именно этот флаг или что-то похожее.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
Регистрация: 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,787
|
Лучше переделать то, что есть. Там в либе лежит мувик, в нём в каждом кадре отдельный флаг. Там надо просто нарисовать свой и всё.
А вообще, кажется iNils показывал пример флага, который работает с DisplacementMapFilter, там всё проще. Тему я искал, но что-то не нашёл… |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 13
|
Сейчас попробую.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 21:01. |
|
|
« Предыдущая тема | Следующая тема » |
|
|