Показать сообщение отдельно
Старый 05.11.2006, 20:18
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 24  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Вот... Может не очень красиво...
Код:
var currentMovie:Number = 1;
var thumbsNumber:Number = 4;

var containerClipName:String = "container";
var containerLeft:Number = 20;
var containerTop:Number = 20;

var thumbsBaseName:String = "resources/pic";
var thumbsExtension:String = "jpg";
var thumbsClipBaseName:String = "thumb";
var thumbsLeft:Number = 0;
var thumbsTop:Number = 200;
var thumbsScale:Number = 50;
var thumbsInterval:Number = 10;

var bigsBaseName:String = "resources/big";
var bigsExtension:String = "jpg";
var bigLeft:Number = 0;
var bigTop:Number = 0;

var zoomedClipName:String = "zoomed";
var zoomedLeft:Number = 0;
var zoomedTop:Number = 0;
var zoomedScale:Number = 100;

var currentThumbX:Number = thumbsLeft;
var thumbsLoaded:Number = 0;
var thumbSelected:Number = 0;

var containerClip:MovieClip = this.createEmptyMovieClip(containerClipName, this.getNextHighestDepth());
containerClip._x = containerLeft;
containerClip._y = containerTop;

var clipsLoader:MovieClipLoader = new MovieClipLoader();
var clipsLoaderListener:Object = new Object();
clipsLoader.addListener(clipsLoaderListener);
loadNewMovie(currentMovie);

clipsLoaderListener.onLoadInit = function(targetClip:MovieClip)
{
	thumbsLoaded++;
	targetClip._xscale = targetClip._yscale = thumbsScale;
	currentThumbX += targetClip._width + thumbsInterval;
	targetClip.id = currentMovie;
	loadNextMovie();	
	targetClip.onRollOver = function()
	{
		this.setTransformRGBA(100, 110, 100, 0, -100, 0, 100, 0);
	};
	targetClip.onRollOut = targetClip.onReleaseOutside = function()
	{
		this.resetTransformRGBA();
	};
	targetClip.onRelease = function()
	{
		if (this._parent[zoomedClipName] != undefined)
		{
			this._parent[zoomedClipName].removeMovieClip();
		}
		thumbSelected = this.id;
		var zoomedLoader:MovieClipLoader = new MovieClipLoader();
		var zoomedLoaderListener:Object = new Object();
		zoomedLoader.addListener(zoomedLoaderListener);
		var zoomedName:String = thumbsBaseName + this.id + "." + thumbsExtension;
		var zoomedContainerClip:MovieClip = this._parent.createEmptyMovieClip(zoomedClipName, this._parent.getNextHighestDepth());
		zoomedContainerClip._x = zoomedLeft;
		zoomedContainerClip._y = zoomedTop;
		zoomedLoader.loadClip(zoomedName, zoomedContainerClip);
		zoomedLoaderListener.onLoadInit = function(targetZoomedClip:MovieClip)
		{
			targetZoomedClip.id = thumbSelected;
			targetZoomedClip.onRelease = function()
			{
				if (thumbsLoaded == thumbsNumber)
				{
					var parentClip:MovieClip = this._parent;
					for (thumbsIndex:Number = 1; thumbsIndex <= thumbsNumber; thumbsIndex++)
					{
						var thumbToDeleteName:String = thumbsClipBaseName + thumbsIndex;
						parentClip[thumbToDeleteName].removeMovieClip();
					}
					var bigLoader:MovieClipLoader = new MovieClipLoader();
					var bigName:String = bigsBaseName + this.id + "." + bigsExtension;
					this.removeMovieClip();					
					bigLoader.loadClip(bigName, parentClip);					
				}
			};
			targetZoomedClip.onRollOver = function()
			{
				this.setTransformRGBA(100, 110, 100, 0, -100, 0, 100, 0);
			};
			targetZoomedClip.onRollOut = targetClip.onReleaseOutside = function()
			{
				this.resetTransformRGBA();
			};			
		};
	};
}

clipsLoaderListener.onLoadError = function(targetClip:MovieClip, errorCode:String)
{
	targetClip.removeMovieClip();
	loadNextMovie();
}

function loadNewMovie(movieNumber:Number)
{
	var movieName:String = thumbsBaseName + movieNumber + "." + thumbsExtension;
	var movieContainerClipName:String = thumbsClipBaseName + movieNumber;
	var movieContainerClip:MovieClip = containerClip.createEmptyMovieClip(movieContainerClipName, containerClip.getNextHighestDepth());
	movieContainerClip._x = currentThumbX;
	movieContainerClip._y =	thumbsTop;
	clipsLoader.loadClip(movieName, movieContainerClip);
}

function loadNextMovie()
{
	currentMovie++;
	if (currentMovie <= thumbsNumber)
	{
		loadNewMovie(currentMovie);
	}
}

MovieClip.prototype.setTransformRGBA = function (ra, rb, ga, gb, ba, bb, aa, ab)
{
	if (arguments.length < 8)
	{
		return false;
	}
	var x:Number = 0;
	while (x < arguments.length)
	{
		if (isNaN(arguments[x++]))
		{
			return false;
		}
	}
	if (ra <= 100 && ga <= 100 && ba <= 100 && aa <= 100 && ra >= -100 && ga >= -100 && ba >= -100 && aa >= -100 && rb <= 255 && gb <= 255 && bb <= 255 && ab <= 255 && rb >= -255 && gb >= -255 && bb >= -255 && ab >= -255)
	{
		var thisColor:Object = {ra:ra, rb:rb, ga:ga, gb:gb, ba:ba, bb:bb, aa:aa, ab:ab};
		var col:Color = new Color(this);
		col.setTransform(thisColor);
		return true;
	}
	else
	{
		return false;
	}
}

MovieClip.prototype.resetTransformRGBA = function()
{
	var thisColor:Object = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:255};
	var col:Color = new Color(this);
	col.setTransform(thisColor);
}
Исходник прикрепляю...
Вложения
Тип файла: rar thumbs.part1.rar (91.8 Кб, 31 просмотров)
Тип файла: rar thumbs.part2.rar (91.8 Кб, 33 просмотров)
Тип файла: rar thumbs.part3.rar (31.8 Кб, 32 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого