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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.10.2006, 16:54
Kristik вне форума Посмотреть профиль Отправить личное сообщение для Kristik Найти все сообщения от Kristik
  № 1  
Ответить с цитированием
Kristik

Регистрация: Dec 2001
Сообщений: 7
Question Создание слайдшоу

Добрый день!

Подскажите, пожалуйста, как мне создать во флэше слайдшоу?

Есть 3 swf файла, которые нужно поочередно воспроизводить. Первый проигрался, тут же начинается воспроизведение следующего.
Как проще всего это реализовать?

Во флеше не особо разбираюсь

Заранее благодарю за ответы!

Старый 13.10.2006, 16:57
Kristik вне форума Посмотреть профиль Отправить личное сообщение для Kristik Найти все сообщения от Kristik
  № 2  
Ответить с цитированием
Kristik

Регистрация: Dec 2001
Сообщений: 7
Нашел в форуме следующий код


Код:
Есть "главный" файл, в котором 3 фрейма, каждый фрейм подгружает свой swf файл. 

var container:MovieClip = _root.createEmptyMovieClip("container", 1);
// Создаём контейнер для подгрузки
var mcLoader:MovieClipLoader = new MovieClipLoader();
// Создаём функцию для отслежки загрузки
mcLoader.addListener(this);
mcLoader.loadClip("1.swf", container);

Но у меня не получается заставить это работать
Т.е. я создал новый файл. В нем сделал 3 фрейма. В каждом из этих фреймов написал код, указанный выше. Не работает

ПОМОГИТЕ!!
Вопрос достаточно срочный

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Kristik:
Тут похожая задача:
http://flasher.ru/forum/showthread.php?t=86343
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 13.10.2006, 18:09
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
А зачем this в листенеры добавлять? Просто интересно, я уже не первый раз вижу этот код, очевидно, он из какого-то очень популярного источника, интересно все таки, что ж там дальше-то было? =)
__________________
Hell is the possibility of sanity

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 wvxvw:
А что дальше? Слушали, что скажет _root, наверное.... ^_^ Или куда там этот код вставлялся...

2 Kristik:
А вы не помните, где нашли этот код? А то я не такой наблюдательный, как wvxvw, но теперь тоже стало интересно...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 13.10.2006, 18:29
Kristik вне форума Посмотреть профиль Отправить личное сообщение для Kristik Найти все сообщения от Kristik
  № 6  
Ответить с цитированием
Kristik

Регистрация: Dec 2001
Сообщений: 7
2 Хемуль:

Нашел в этом форуме! Честно говоря, ссылка не сохранилась

Ребята, помогите реализовать идею со слайдшоу!!
Пожалуйста!!

Буду жутко признателен за исходник.. но это в идеале, я сам понимаю.. люди все занятые и дергать их понапрасну мне не стоило!

Пожалуйста!

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

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

Старый 13.10.2006, 18:47
Kristik вне форума Посмотреть профиль Отправить личное сообщение для Kristik Найти все сообщения от Kristik
  № 8  
Ответить с цитированием
Kristik

Регистрация: Dec 2001
Сообщений: 7
2 Хемуль:

Спасибо!! Буду очень ждать!!

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

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Код:
var movieBaseName:String = "resources/movie";
var movieExtension:String = "swf";
var currentMovie:Number = 0;
var moviesNumber:Number = 4;
var movieContainerClipBaseName:String = "movie";
var left:Number = 100;
var top:Number = 100;
var loading:Boolean = false;
var firstMovie:Boolean = true;

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

clipsLoaderListener.onLoadStart = function(targetClip:MovieClip)
{
	loading = true;
}

clipsLoaderListener.onLoadComplete = function(targetClip:MovieClip)
{
	loading = false;
	var previousMovie:Number = (currentMovie == 1 ? moviesNumber : currentMovie - 1);
	var previousMovieClipName:String = movieContainerClipBaseName + previousMovie;
	if (targetClip._parent[previousMovieClipName] != undefined)
	{
		targetClip.gotoAndStop(1);
	}
	if (firstMovie)
	{
		firstMovie = false;
		loadNextMovie();
	}
	targetClip.onEnterFrame = function()
	{
		if (this._currentframe == this._totalframes)
		{
			if (loading)
			{
				this.gotoAndStop(this._totalframes);
			}
			else
			{
				var currentMovieClipName:String = movieContainerClipBaseName + (currentMovie);
				var currentMovieClip:MovieClip = this._parent[currentMovieClipName];
				currentMovieClip.play();
				this.removeMovieClip();
				loadNextMovie();
			}
		}
	};
}

function loadNewMovie(movieNumber:Number)
{
	var movieName:String = movieBaseName + movieNumber + "." + movieExtension;
	var movieContainerClipName:String = movieContainerClipBaseName + movieNumber;
	var containerClip:MovieClip = this.createEmptyMovieClip(movieContainerClipName, this.getNextHighestDepth());
	var previousMovie:Number = (movieNumber == 1 ? moviesNumber : movieNumber - 1);
	var previousMovieClipName:String = movieContainerClipBaseName + previousMovie;
	this[previousMovieClipName].swapDepths(containerClip);
	containerClip._x = left;
	containerClip._y = top;
	clipsLoader.loadClip(movieName, containerClip);
}

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

clipsLoader.addListener(clipsLoaderListener);
loadNextMovie();
Картинки загружаются в мувиклипы, расположенные один под другим. Пока один проигрывается, второй под ним загружает в себя флешку. Если картинка нижняя загрузится раньше, чем проиграется верхняя, то она ждёт, пока верхняя проиграется и удалится. Если нижняя картинка загрузится позже, чем закончит проигрываться верхняя, то верхняя проигрывается до конца, ждёт загрузки нижней, а потом удаляется, после чего проигрывается нижняя. Может где-то ошибся. Тестировать с разными размерами лень. Будут вопросы или проблемы, пишите.
Исходник прикрепляю...
Вложения
Тип файла: zip loadMoviesSequence.zip (26.4 Кб, 104 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

Старый 14.10.2006, 13:48
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Альтернативный вариант =)
Код:
var _l1:MovieClipLoader = new MovieClipLoader();
var _l2:Object = {};
var _l3:Array = ["slide1.swf", "slide2.swf", "slide3.swf"];
var _l4:MovieClip = _root.createEmptyMovieClip("container", 0);
var _l5:Number = 0;
var _l6:Array = [];
for (i=0; i<_l3.length; i++) {
	var _l7:MovieClip = _l4.createEmptyMovieClip("container"+i, _l4.getNextHighestDepth());
	_l6.push(_l7);
	_l1.loadClip("directory/"+_root._l3[i], _l7);
	_l7._x = Stage.width;
	_l7._y = Stage.height;
}
_l1.addListener(_l2);
_l2.onLoadComplete = function(mc) {
	if (mc == _l6[0]) {
		mc._x = 0;
		mc._y = 0;
		_l5++;
		_root.switcher(_l5);
	}
};
function switcher() {
	_root.onEnterFrame = function() {
		if (_root._l6[_root._l5-1]._currentframe == _root._l6[_root._l5-1]._totalframes && _root._l6[_root._l5].getBytesTotal() == _root._l6[_root._l5].getBytesLoaded()) {
			_root._l6[_root._l5-1].stop();
			_root._l6[_root._l5-1]._x = Stage.width;
			_root._l6[_root._l5-1]._y = Stage.height;
			_root._l6[_root._l5]._x = 0;
			_root._l6[_root._l5]._y = 0;
			_root._l5++;
		}
	};
}
Вложение 15470
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 27.04.2008 в 22:16.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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