Просмотр полной версии : FlashSlideShow
Ar_PHARAZON
16.02.2010, 20:24
Друзья, у меня следующая проблема:
Пытаюсь создать самое просто, самое обычное слайдшоу, в котором картинки будут двигаться в левую сторону одна за одной (короче, обычная лента)
При публикации, качество картинки ухудшается до неузнаваемости! Дрожит и рябит! Ничего не могу поделать((
Может кто подскажет, как проще создать такое?
Или как загружать картинки из директории во флешку, при этом задавая формат, позицию загрузки и циклическое движение одна за одной (речь идет о loadMovie в AS2)
заранее, очень благодарен
1. Если картинки в библиотеке, выделяете ее в библиотеке, правым кликом вызываете меню - "Allow Smoothing".
2. Если будете разбираться с загрузкой фото извне, сразу никаких loadMovie, этот метод вам не даст возможностей како-либо адекаватной работы с загружаемым контентом. используете только MovieClipLoader, примеров галерей на его основе достаточно и на форуме, и в инете в целом. Только MCL, если loadMovie будете использовать, тут никто даже с вашими проблемами разбираться не будет, т.к. использование loadMovie - это уже проблема.
Поищите примеры.
Разбейте задачу:
1. Создать контейнеры для загружаемых фото.
2. Обеспечить в них загрузку фото.
3. Смаштабировать и отцентроать фото. Сгладить.
4. И уже только теперь создать требуемую анимацию слайдов.
Вариантов этапов 1-3 тоже много - можно загрузить фото в невидимые мувики и последовательно их проявлять, двигая...
Можно загрузить фото в мувики, и, сняв с них битмап-данные в специальный массив, удалить эти временные мувики-контейнеры, а когда нужно, присоединять картинки из массива на сцену... все наглядно и держать все на сцене не нужно.
Ar_PHARAZON
17.02.2010, 02:12
1. Если картинки в библиотеке, выделяете ее в библиотеке, правым кликом вызываете меню - "Allow Smoothing".
2. Если будете разбираться с загрузкой фото извне, сразу никаких loadMovie, этот метод вам не даст возможностей како-либо адекаватной работы с загружаемым контентом. используете только MovieClipLoader, примеров галерей на его основе достаточно и на форуме, и в инете в целом. Только MCL, если loadMovie будете использовать, тут никто даже с вашими проблемами разбираться не будет, т.к. использование loadMovie - это уже проблема.
Поищите примеры.
Разбейте задачу:
1. Создать контейнеры для загружаемых фото.
2. Обеспечить в них загрузку фото.
3. Смаштабировать и отцентроать фото. Сгладить.
4. И уже только теперь создать требуемую анимацию слайдов.
Вариантов этапов 1-3 тоже много - можно загрузить фото в невидимые мувики и последовательно их проявлять, двигая...
Можно загрузить фото в мувики, и, сняв с них битмап-данные в специальный массив, удалить эти временные мувики-контейнеры, а когда нужно, присоединять картинки из массива на сцену... все наглядно и держать все на сцене не нужно.
Превыше благодарен! Спасибо!:)
Ar_PHARAZON
17.02.2010, 22:27
1 - и все та же проблема(( изображение дрожит при сдвиге влево (я приложил файл). может кто объяснит, с чем это связано?
2 - а как загрузить сразу несколько картинок в один контейнер (с целью сдвигать все картинки одновременно, длинной лентой)???
вот текущий код:
var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("war2.jpg",container);
function onLoadInit(mc:MovieClip) {
trace("onLoadInit: " + mc);
}
1. Все предельно просто - увеличь fps до 30.
2. Одна картинка - один контейнер. Если нужна длинная лента - делаем общий мувик-ленту, а внутри контейнеры, куда грузим картинки.
И потом, почему у тебя анимация радостно стартует, не дождавшись конца загрузки?
Может быть, хотя бы так?
stop();
var container:MovieClip = createEmptyMovieClip("container", this.getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("war2.jpg", container);
function onLoadInit(mc:MovieClip) {
this.play();
}
Кстати, а зачем container создается кодом, если мувик с таким именем уже есть на сцене?
См. твой переделанный пример.
Там несколько уровней вложенности. Контейнер img для фото создается внутри анимированного мувика cont, который, в свою очередь, находится в мувике anim_pic на главном таймлайне.
После загрузки фото стартует анимация.
Если нужно несколько фото, нужно сделать несколько контейнеров и грузить в них фото. Можно сделать старт всей анимации после загрузки всех фото.
Создание контейнеров, их сдвиг (если ширина всех фото известна, и тем более, одинакова) и старт загрузки можно сделать циклом.
В общем для всех onLoadInit можно сделать увеличение счетчика на 1 при загрузке очередного фото, при достижении конца - старт анимации...
В общем, все можно, зависит от конечной задачи...
PS. Не стоит больше на главном таймлайне кадров добавлять, разве что делаешь предзагрузчик..
Ar_PHARAZON
18.02.2010, 00:21
Кстати, а зачем container создается кодом, если мувик с таким именем уже есть на сцене?
хм... видимо, создал контейнер, а потом забыл тег лишний снять.
Скажи, а таким методом (movieClip) можно подгружать swf-ку, которая связана с xml (есть и какая-то привязка с php-файлом)??
я вот попробовал... и ничего не происходит. (загружаемый файл является достаточно сложным модулем одной галереи)
я вот попробовал... и ничего не происходит. (загружаемый файл является достаточно сложным модулем одной галереи)
Очень беспредметно.
Выкладывайте исходники, телепаты, как говорится, в отпуске... :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.