Показать сообщение отдельно
Старый 25.12.2006, 09:19
Светка Иванова вне форума Посмотреть профиль Отправить личное сообщение для Светка Иванова Найти все сообщения от Светка Иванова
  № 6  
Ответить с цитированием
Светка Иванова

Регистрация: Dec 2006
Сообщений: 13
Attention Здорово! а можо объяснить теперь это для блондинки?

А может ктонить объяснить теперь это для блондинки?

И как это применимо к в моем флажке?
Пожаааалуйста, ну покажите мне как это делается... я обещала до среды сдать контрольную...

Код:
/***************************************
	автор: 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: Для оформления своего кода, надо использовать теги [code][/code]]


Последний раз редактировалось iNils; 25.12.2006 в 09:38.