Просмотр полной версии : Задержка Action Script 2.0
Привет!
сразу хочу сказать моя тема аналогичная этой (http://flasher.ru/forum/showthread.php?t=91860&highlight=%E7%E0%E4%E5%F0%E6%EA%E0). Но совет из нее не помог. Задержка не работает.
Нужен эффект смены картинок. Для него сделал слой с маской
mask_mc - это мувик целой маски из вертикальных линий
line_mc - мувик линии - делал все на тайм лайне без AS
//Переменные xl и yl это координаты первой линии
var xl:Number = - 1;
var yl:Number = - 1;
// В этом цикле выводится вертикальные линия из квадратиков которые постепенно закрывают изображение слева направо (mask слой)
for (var i = 1; i <= 140; i++) {
this.attachMovie("line_mc", "line_mc_"+i, this.getNextHighestDepth(), {_x:xl, _y:yl});
//Здесь задется xl координата для следующей линии
xl = xl + 4;
// Задается координата yl четные ряды -1 нечетные -5 или наооборот - неважно (ну чтобы клеточки на линии были в шахматном порядке)
if ( yl == - 1 ) { yl = - 5 }
else { yl = - 1 };
//Тут надо вставить задержку на 5 кадров.Что бы только через 5 кадров выводилась след линия А то получается что все линии выводятся сразу.
//Пробовал вот это - не работает задержка
stop();
setTimeout(function () {
mask_mc.gotoAndPlay(mask_mc._currentframe+1);
}, 1000);
}
подскажите ответ для AS2 - уже весь сижу. AS3 этот скрипт вообще не воспроизводит Adobe виснет.
function GO(val)
{
trace(val)
}
setTimeout( GO, 5000, "123")
Выводится 123 однократно с задержкой в 5 секунд
Если что-то не работает - упрощайте конструктив вызова и построения функционалов :)
Не работает. Пробовал вот так вообще ничего не выводится
var xl:Number = - 1;
var yl:Number = - 1;
for (var i = 1; i <= 140; i++) {
function GO(val)
{
this.attachMovie("line_mc", "line_mc_"+i, i, {_x:xl, _y:yl});
}
setTimeout( GO, 5, "123");
xl = xl + 4;
if ( yl == - 1 ) { yl = - 5 }
else { yl = - 1 };
}
Пробывал вот так - задержки не создает.
var xl:Number = - 1;
var yl:Number = - 1;
for (var i = 1; i <= 140; i++) {
this.attachMovie("line_mc", "line_mc_"+i, i, {_x:xl, _y:yl});
xl = xl + 4;
if ( yl == - 1 ) { yl = - 5 }
else { yl = - 1 };
function GO(val)
{
trace(val);
}
setTimeout( GO, 5000, "123");
}
Вывод функция вообще не выполняется. Что делать?
dark256, видишь в коде AS2 функция setTimeout не подсвечивает даже,
поэтому рискну предположить что она из AS3.
setTimeout прекрасно работает и на ас2
ну тогда что я делаю неправильно? почему данный код не работает? при этом Check Syntax ошибок не выдает
а зачем функция объявляется и вызывается в цикле?????
http://pic.************/uploads/091202/R0vb8ercEo.jpg
Вот это то что должно получится, вертикальные линии должны появляться одна за одной, слева направо через 5 кадров. Вывод линий организован в цикле for все даже работает, только линии выводятся все и сразу. задержка никак не хочет работать.
var xl:Number = -1;
var yl:Number = -1;
function go(i:Number):Void {
attachMovie("line_mc","line_mc_"+i,i,{_x:xl, _y:yl});
xl = xl+4;
if (yl == -1) {
yl = -5;
} else {
yl = -1;
}
}
for (var i = 1; i <= 140; i++) {
setTimeout(go, 100 * i, i); //время сами зададите
}
спасибо, работает. Правда непонял что значит Void здесь
function go(i:Number):Void {
и 100 * i ( походу с каждым новым циклом промежуток временной увеличивается хз зачем, но по факту ничего не увеличивается)
setTimeout(go, 100 * i, i);
Я в этот понедельник первый раз ActionScript в глаза увидел. и Flash. Учебник 1000 стр некогда читать было.
Спасибо за помощь.
:Void означает, что функция ничего не возвращает, нужно ведь типизировать функции
100 * i
Делается для того, чтобы линии появлялись поочереди
Если вы напиши 100, то все появятся в одно время
setTimeout( GO, 5, "123");
- у вас время задержки 5 миллисекунд :))))
на глаз это не увидеть :))))
5000 - 5 секунд :)))
Еще один вопросик вдогонку.
Эта анимация - слой маски должна закрывать фотографию для смены картинок.
Но опять что-то не так. если есть два слоя один из них маска, другой картинка которую нужно скрыть получается вот что:
http://pic.************/uploads/091203/thumbs/TsOU6g5VdK.jpg (http://************/Gallery/Viewfull/28035672.html)
Если без маски один слой над другим то вроде все работает:
http://pic.************/uploads/091203/thumbs/Fw5n2oHyW9.jpg (http://************/Gallery/Viewfull/28035729.html)
На всякий случай скрин моего Adobe
http://pic.************/uploads/091203/thumbs/q1tMk0Xoci.jpg (http://************/Gallery/Viewfull/28035830.html)
Анимация вроде как-бы работает, только проиграется и сразу исчезает(исчезает именно тогда когда ставишь галочку MAsk) в чем косяк?
TihelpER
03.12.2009, 12:35
Я не совсем понял что там у тебя за проблема.
Понял только что результат на первом скриншоте тебя не устраивает. Что бы такая маска, с альфа-каналом, работала адекватно необходимо клипу-цели поставить casheAsBitmap = true;
Можно в AS, можно на панели properites.
Простите, но у топика такое название, будто чей то флэш забеременел).
Допустип есть 3 слоя, нижний - 1 фотография, средний - 2 фотография, верхний маска - для 2-ой фотографии, маска должна постепенно закрыть 2 фотографию. Когда маска закроет 2 фотографию из под нее выступит 1-ая фотография, получается плавная смена картинок с помощью этой маски. Вот чего я хочу добиться. Вот как здесь http://www.bontam.ru/ Только это я все делал на TimeLine нет ни строчки ActionScript. А ту анимацию которуя я хочу сейчас сделать - ТАМ ОЧЕНЬ МНОГО квадратиков таких, вручную неделю рисовать и задавать координаты
маску и таймлайн - оставьте, а в клипе с маской изменяйте картинку.
получится один клип с таймлайном и скрипт изменяющий картинку... и пусть их будут хоть мильоны :)
Вот мувик с маской там всего один кадр и то без рисунков
http://pic.************/uploads/091203/thumbs/CN18WZC35R.jpg (http://************/Gallery/Viewfull/28047081.html)
Куда ткнуть?
Добавлено через 1 час 10 минут
Разобрался!
Код, который мне подсказал ZIK68 я сначала вставлял в мувиклип "mask_mc" а только потом перетаскивал этот клип на слой маски.
Я добавил напрямую этот код на слой маски и все заработало! Так как мне нужно.
http://pic.************/uploads/091203/thumbs/ZDxhPH3OVZ.jpg (http://************/Gallery/Viewfull/28050440.html)
Когда доделаю флешу будет здесь лежать Каталог мебели (http://www.shkafi-cupe.ru/catalog/)
Тема закрыта. Всем спасибо =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.