Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   FlashSlideShow (http://www.flasher.ru/forum/showthread.php?t=136413)

Ar_PHARAZON 16.02.2010 20:24

FlashSlideShow
 
Друзья, у меня следующая проблема:
Пытаюсь создать самое просто, самое обычное слайдшоу, в котором картинки будут двигаться в левую сторону одна за одной (короче, обычная лента)
При публикации, качество картинки ухудшается до неузнаваемости! Дрожит и рябит! Ничего не могу поделать((
Может кто подскажет, как проще создать такое?
Или как загружать картинки из директории во флешку, при этом задавая формат, позицию загрузки и циклическое движение одна за одной (речь идет о loadMovie в AS2)
заранее, очень благодарен

mooncar 16.02.2010 20:58

1. Если картинки в библиотеке, выделяете ее в библиотеке, правым кликом вызываете меню - "Allow Smoothing".
2. Если будете разбираться с загрузкой фото извне, сразу никаких loadMovie, этот метод вам не даст возможностей како-либо адекаватной работы с загружаемым контентом. используете только MovieClipLoader, примеров галерей на его основе достаточно и на форуме, и в инете в целом. Только MCL, если loadMovie будете использовать, тут никто даже с вашими проблемами разбираться не будет, т.к. использование loadMovie - это уже проблема.
Поищите примеры.
Разбейте задачу:
1. Создать контейнеры для загружаемых фото.
2. Обеспечить в них загрузку фото.
3. Смаштабировать и отцентроать фото. Сгладить.
4. И уже только теперь создать требуемую анимацию слайдов.

Вариантов этапов 1-3 тоже много - можно загрузить фото в невидимые мувики и последовательно их проявлять, двигая...
Можно загрузить фото в мувики, и, сняв с них битмап-данные в специальный массив, удалить эти временные мувики-контейнеры, а когда нужно, присоединять картинки из массива на сцену... все наглядно и держать все на сцене не нужно.

Ar_PHARAZON 17.02.2010 02:12

Цитата:

Сообщение от mooncar (Сообщение 887067)
1. Если картинки в библиотеке, выделяете ее в библиотеке, правым кликом вызываете меню - "Allow Smoothing".
2. Если будете разбираться с загрузкой фото извне, сразу никаких loadMovie, этот метод вам не даст возможностей како-либо адекаватной работы с загружаемым контентом. используете только MovieClipLoader, примеров галерей на его основе достаточно и на форуме, и в инете в целом. Только MCL, если loadMovie будете использовать, тут никто даже с вашими проблемами разбираться не будет, т.к. использование loadMovie - это уже проблема.
Поищите примеры.
Разбейте задачу:
1. Создать контейнеры для загружаемых фото.
2. Обеспечить в них загрузку фото.
3. Смаштабировать и отцентроать фото. Сгладить.
4. И уже только теперь создать требуемую анимацию слайдов.

Вариантов этапов 1-3 тоже много - можно загрузить фото в невидимые мувики и последовательно их проявлять, двигая...
Можно загрузить фото в мувики, и, сняв с них битмап-данные в специальный массив, удалить эти временные мувики-контейнеры, а когда нужно, присоединять картинки из массива на сцену... все наглядно и держать все на сцене не нужно.

Превыше благодарен! Спасибо!:)

Ar_PHARAZON 17.02.2010 22:27

Вложений: 1
1 - и все та же проблема(( изображение дрожит при сдвиге влево (я приложил файл). может кто объяснит, с чем это связано?

2 - а как загрузить сразу несколько картинок в один контейнер (с целью сдвигать все картинки одновременно, длинной лентой)???
вот текущий код:

Код AS1/AS2:

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);
}


mooncar 17.02.2010 23:55

1. Все предельно просто - увеличь fps до 30.
2. Одна картинка - один контейнер. Если нужна длинная лента - делаем общий мувик-ленту, а внутри контейнеры, куда грузим картинки.
И потом, почему у тебя анимация радостно стартует, не дождавшись конца загрузки?
Может быть, хотя бы так?
Код AS1/AS2:

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 создается кодом, если мувик с таким именем уже есть на сцене?

mooncar 18.02.2010 00:16

Вложений: 1
См. твой переделанный пример.
Там несколько уровней вложенности. Контейнер img для фото создается внутри анимированного мувика cont, который, в свою очередь, находится в мувике anim_pic на главном таймлайне.
После загрузки фото стартует анимация.
Если нужно несколько фото, нужно сделать несколько контейнеров и грузить в них фото. Можно сделать старт всей анимации после загрузки всех фото.
Создание контейнеров, их сдвиг (если ширина всех фото известна, и тем более, одинакова) и старт загрузки можно сделать циклом.
В общем для всех onLoadInit можно сделать увеличение счетчика на 1 при загрузке очередного фото, при достижении конца - старт анимации...
В общем, все можно, зависит от конечной задачи...
PS. Не стоит больше на главном таймлайне кадров добавлять, разве что делаешь предзагрузчик..

Ar_PHARAZON 18.02.2010 00:21

Цитата:

Сообщение от mooncar (Сообщение 887433)
Кстати, а зачем container создается кодом, если мувик с таким именем уже есть на сцене?

хм... видимо, создал контейнер, а потом забыл тег лишний снять.

Скажи, а таким методом (movieClip) можно подгружать swf-ку, которая связана с xml (есть и какая-то привязка с php-файлом)??
я вот попробовал... и ничего не происходит. (загружаемый файл является достаточно сложным модулем одной галереи)

mooncar 18.02.2010 00:23

Цитата:

Сообщение от Ar_PHARAZON (Сообщение 887439)
я вот попробовал... и ничего не происходит. (загружаемый файл является достаточно сложным модулем одной галереи)

Очень беспредметно.
Выкладывайте исходники, телепаты, как говорится, в отпуске... :)


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

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