Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.11.2006, 03:33
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 21  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Вопрос открыт по прежнему, проблем с подгрузкой извне - нет, проблема в ссылке.

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 repz:
Я постараюсь написать. Только сразу говорю, будет сложно... Наверное...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 05.11.2006, 03:38
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 23  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Буду благодарен...

Старый 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 - ты слишком умён для этого

Старый 05.11.2006, 23:36
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 25  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Я конечно уже наглею, но все же посмотри мой пример,я в AS так не рублю сильно у мя попроще немного...... может с моим можно , что-то сделать?


Последний раз редактировалось repz; 06.11.2006 в 00:15.
Старый 06.11.2006, 00:13
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 26  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 repz:
Ой, извините, я не хочу разбираться в вашем коде. Я посмотрел, очень уж у вас всё просто. Я не говорю, что нужно обязательно моим путём идти, но и по-вашему нормально не получится... Смотрите, в чём проблема... Мы загружаем извне картинки на сцену и делаем из них маленькие такие сабнейлы... Для этого нужен один обьект MovieClipLoader... Потом нам нужно щёлкнуть на маленькую картинку и получить большую... duplicateMovieClip не пройдёт, потому что флешка была загружена извне. Поэтому придётся снова грузить ту же флешку, что и для маленькой картинки, но уже не уменьшать её. Если предположить, что пользователь может щёлкнуть на первом сабнейле, когда ещё не загружены все остальные, нам понадобится ещё один MovieClipLoader. Ну, мне так кажется... Потом, если предположить, что то же самое произойдёт с увеличенным мувиклипом (нажатие мышью на нём), то нам понадобится ещё один MovieClipLoader. Я вот точно не знаю, может ли MovieClipLoader параллельно загружать флешки в несколько клипов. Но даже если может, это всё равно не слишком сильно уменьшит код. Если не может, но вы захотите всё реализовать одним MovieClipLoader, то придётся вводить переменные-флаги и ограничивать пользователя в действиях, ожидая окончание загрузки...
Проще говоря, врядли получится нормально обойтись тем количеством строк, что у вас в коде...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 06.11.2006, 00:16
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 27  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
Спасибо за помощь, сделаю кнопки к каждой маленькой картинки....

Старый 06.11.2006, 00:25
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 28  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 repz:
Кнопки? В смысле символы button в библиотеке? о_0
Вас что, действительно так сильно напугал мой код? Но ведь проще действительно врядли выйдет. У вас в задаче целых 3 последовательных загрузки извне... Сложно ожидать, что всё это будет так просто работать и займёт пару строк кода...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 06.11.2006, 00:30
repz вне форума Посмотреть профиль Отправить личное сообщение для repz Найти все сообщения от repz
  № 29  
Ответить с цитированием
repz

Регистрация: Mar 2006
Сообщений: 425
2 Хемуль:
В коде вроде разобрался, кое что осталось не понятным, лишнее удалил..., но у меня не три картинки, а 16 и их размещение вызывает у меня большие вопросы в смысле кода....
P.S. Нет просто под каждым полем с картинкой - мувик кнопка,который выгружает текущий мувик и на его место загружает другой.


Последний раз редактировалось repz; 06.11.2006 в 00:32.
Старый 06.11.2006, 00:37
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 30  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
У меня в коде количество картинок, которые нужно загружать регулируется переменной thumbsNumber.
По поводу кнопки под полем с картинкой... Ну в обработчике zoomedLoaderListener.onLoadInit моего кода можно просто создать/загрузить кнопку и назначить для неё обработчик onRelease...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:54.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:54.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.