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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 edo:
Ок. Следующий пример.
Код:
Код:
var movieBaseName:String = "resources/r";
var movieExtension:String = "jpg";
var currentMovie:Number = 1;
var moviesNumber:Number = 9;
var movieContainerClipBaseName:String = "movie";
var progressTextName:String = "progress";
var left:Number = 100;
var top:Number = 100;
var movieWidth:Number = 60;
var movieHeight:Number = 60;
var progressTextWidth:Number = 40;
var progressTextHeight:Number = 20;
var progressTextFont:String = "_sans";
var progressTextColor:Number = 0xffffff;
var progressTextSize:Number = 14;
var loading:Boolean = false;

var clipsLoader:MovieClipLoader = new MovieClipLoader();
var clipsLoaderListener:Object = new Object();

clipsLoaderListener.onLoadStart = function(targetClip:MovieClip)
{
	loading = true;
	targetClip._parent.createTextField(progressTextName, targetClip._parent.getNextHighestDepth(), targetClip._x + (movieWidth - progressTextWidth) / 2, targetClip._y + (movieHeight - progressTextHeight) / 2, progressTextWidth, progressTextHeight);
	var progressTextFormat:TextFormat = new TextFormat();
	progressTextFormat.font = progressTextFont;
	progressTextFormat.size = progressTextSize;
	progressTextFormat.color = progressTextColor;
	targetClip._parent[progressTextName].setNewTextFormat(progressTextFormat);
}

clipsLoaderListener.onLoadComplete = function(targetClip:MovieClip)
{
	targetClip._parent[progressTextName].removeTextField();
	var previousMovie:Number = (currentMovie == 1 ? 9 : currentMovie - 1);
	var previousMovieClipName:String = movieContainerClipBaseName + previousMovie;
	clipsLoader.unloadClip(targetClip._parent[previousMovieClipName]);
	targetClip._parent[previousMovieClipName].removeMovieClip();
	loading = false;	
}

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

clipsLoaderListener.onLoadProgress = function(targetClip:MovieClip, loadedBytes:Number, totalBytes:Number)
{
	var percent:Number = Math.ceil((loadedBytes / totalBytes) * 100);
	var progressTextField:TextField = targetClip._parent[progressTextName];
	progressTextField._x = targetClip._x + (movieWidth - progressTextField.textWidth) / 2;
	progressTextField._y = targetClip._y + (movieHeight - progressTextField.textHeight) / 2
	progressTextField.text = percent + "%";
}

function loadNewMovie(movieNumber:Number)
{
	var movieName:String = movieBaseName + movieNumber + "." + movieExtension;
	var movieContainerClipName:String = movieContainerClipBaseName + movieNumber;
	var containerClip:MovieClip = this.createEmptyMovieClip(movieContainerClipName, this.getNextHighestDepth());
	containerClip._x = left;
	containerClip._y = top;
	clipsLoader.loadClip(movieName, containerClip);
}

function loadNextMovie()
{
	currentMovie++;
	if (currentMovie > moviesNumber)
	{
		currentMovie = 1;
	}
	loadNewMovie(currentMovie);	
}

function createRectangleMovieClip(newName:String, parentClip:MovieClip, parentClipDepth:Number, newX:Number, newY:Number, newWidth:Number, newHeight:Number, newColor:Number, newAlpha:Number):MovieClip
{
	var newClip:MovieClip = parentClip.createEmptyMovieClip(newName, parentClipDepth);
	newClip.beginFill(newColor);
	newClip.moveTo(0, 0);
	newClip.lineTo(newWidth, 0);
	newClip.lineTo(newWidth, newHeight);
	newClip.lineTo(0, newHeight);
	newClip.lineTo(0, 0);
	newClip.endFill();
	newClip._x = newX;
	newClip._y = newY;
	newClip._alpha = newAlpha;
	return newClip;
}

clipsLoader.addListener(clipsLoaderListener);
loadNewMovie(currentMovie);
var nextButton = createRectangleMovieClip("clip", this, this.getNextHighestDepth(), 80, 200, 100, 20, 0xaaaaaa, 100);
nextButton.createTextField("myText", nextButton.getNextHighestDepth(), (nextButton._width - 80) / 2, (nextButton._height - 20) / 2, 80, 20);
nextButton.myText.autoSize = "center";
nextButton.myText.text = "Load Next";
nextButton.myText.color = 0x000000;

nextButton.onRelease = function()
{
	if (!loading)
	{
		loadNextMovie();
	}
}
Исходник прикрепляю.
Вопросы?
Вложения
Тип файла: zip loadMoviesWithButton.zip (49.8 Кб, 73 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого