![]() |
|
||||||||||
|
|||||
|
Регистрация: Dec 2001
Сообщений: 7
|
Добрый день!
Подскажите, пожалуйста, как мне создать во флэше слайдшоу? Есть 3 swf файла, которые нужно поочередно воспроизводить. Первый проигрался, тут же начинается воспроизведение следующего. Как проще всего это реализовать? Во флеше не особо разбираюсь ![]() Заранее благодарю за ответы! |
|
|||||
|
Регистрация: 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 фрейма. В каждом из этих фреймов написал код, указанный выше. Не работает ![]() ПОМОГИТЕ!! Вопрос достаточно срочный ![]() |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Modus ponens
|
А зачем this в листенеры добавлять? Просто интересно, я уже не первый раз вижу этот код, очевидно, он из какого-то очень популярного источника, интересно все таки, что ж там дальше-то было? =)
__________________
Hell is the possibility of sanity |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 wvxvw:
А что дальше? Слушали, что скажет _root, наверное.... ^_^ Или куда там этот код вставлялся... 2 Kristik: А вы не помните, где нашли этот код? А то я не такой наблюдательный, как wvxvw, но теперь тоже стало интересно...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Dec 2001
Сообщений: 7
|
2 Хемуль:
Нашел в этом форуме! Честно говоря, ссылка не сохранилась ![]() Ребята, помогите реализовать идею со слайдшоу!! Пожалуйста!! Буду жутко признателен за исходник.. но это в идеале, я сам понимаю.. люди все занятые и дергать их понапрасну мне не стоило! Пожалуйста! |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 Kristik:
Вечером, может, постараюсь вам написать... Думаю, и до меня напишут.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Dec 2001
Сообщений: 7
|
2 Хемуль:
Спасибо!! Буду очень ждать!! |
|
|||||
|
Квач
Регистрация: 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();
Исходник прикрепляю...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Modus ponens
|
Альтернативный вариант =)
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++;
}
};
}
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 27.04.2008 в 22:16. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|