Просмотр полной версии : Смена картинок. Эффективное решение.
Slavyan1
19.03.2006, 14:32
Здравствуйте, добрые люди.
Имеется такая задача:
Есть несколько растровых картинок одного размера.
Необходимо сделать анимацию с плавной сменой одной картинки на другую
последовательно для каждой пары. Это должно быть как слайд-шоу. Картинки показываются в течение задаваемого константой времени в секундах, затем плавно меняются (сменой прозрачности).
Подскажите, как это проще и эффективней сделать так,
чтобы можно было в дальнейшем создавать новые клипы из новых наборов картинок.
Заранее благодарен, Вячеслав.
Здравствуйте, добрые люди.
Имеется такая задача:
Есть несколько растровых картинок одного размера.
Необходимо сделать анимацию с плавной сменой одной картинки на другую
последовательно для каждой пары. Это должно быть как слайд-шоу. Картинки показываются в течение задаваемого константой времени в секундах, затем плавно меняются (сменой прозрачности).
Подскажите, как это проще и эффективней сделать так,
чтобы можно было в дальнейшем создавать новые клипы из новых наборов картинок.
Заранее благодарен, Вячеслав.
делаешь функцию,которая подгружает картинки...
или если у тебя картинки уже импортированы в проект,то используй play()...
а потом пользуешь ф-ю setInterval()....про это можешь почитать в хелпе (перевод есть на форуме...).вообщем-то просто...
getTimer()
_alpha
с загрузкой картинок разобраться несложно. ...потом... тебе нужно 2-а клипа, пока один исчезает, в другой пихается новая картинка и он начинает проявляться, а потом и исчезнувший получает новую картинку.
ЗЫ
Вообще довольно сложно осуществить по средством АС1-2, в АС3 это 3 строчки кода.
Вообще довольно сложно осуществить по средством АС1-2
прямо невыполнимая задача, я бы даже так выразился
Вообще довольно сложно осуществить по средством АС1-2, в АС3 это 3 строчки кода.Да уж AS 1 это вам не AS 3:imID = 'gallery';//идентификатор клипа, где в каждом кадре картинка
deltaA = 10;//скорость изменения прозрачности
deltaI = 2000;//интервал между сменой картинок
attachMovie(imID, 'g1', 0);
attachMovie(imID, 'g2', -1);
g1.gotoAndStop(1);
g2.gotoAndStop(2);
nextImg = getTimer()+deltaI;
onEnterFrame = function () {
if (nextImg<getTimer()) {
g1._alpha -= deltaA;
if (g1._alpha<1) {
g1.nextFrame();
g1._alpha = 100;
if (g2._currentframe == g2._totalframes) {
delete this.onEnterFrame;
trace("картинки закончились :(");
} else {
g2.nextFrame();
}
nextImg = getTimer()+deltaI;
}
}
};
Slavyan1
19.03.2006, 21:32
Уже работает. Кстати, а как узнать версию ActionScript? У меня Flash MX v.6.0.
MX - Это уже AS2.
точнее не так, МХ уже поддерживает AS2.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.