Форум 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)
-   -   Альфа появление и исчезновение (http://www.flasher.ru/forum/showthread.php?t=129178)

ryudzaki 26.08.2009 14:55

Альфа появление и исчезновение
 
Есть клип, в который грузятся 14 clip-ов из библиотеки с определенным промежутком времени от 500 до 4000 милисек. Задача состоит в том, чтобы к примеру клип1 появлялся с помощью альфы, отображался некоторое время и исчезал тоже альфой.
Потом появлялся следующий и т.д.
Я с этой задачей справиться не могу. Прошу Вашей помощи!
Код AS1/AS2:

function attachRandomClip() {
        var num = Math.ceil(Math.random() * 14 + 1);
        var clip = attachMovie("re" + num, "newName", 1000);
            clip._alpha = 0;
        function() {
        clip._alpha += 1
          if (clip._alpha >= 100)
          {
                delete this.onEnterFrame;
          }
 }
 
                {
                        clip._x = 0;
                        clip._y = 0;
                }
}
var i = Math.ceil(Math.random() * 4000 + 500);
var intervalID:Number = setInterval(attachRandomClip, i);


Dezar 26.08.2009 15:04

для начала рекомендую то чему равно I засунуть в сам интервал..а то у вас данное значние будет определено только 1 раз.и меняться больше не будет.

во вторых.интервал времени равныы 500 мс это слишком мало чтобы успеть убрать прозрачность.

в третьих.
я бы сделал внутри функции onEnterFrame и в нем бы увиличивал альфу...

ryudzaki 26.08.2009 15:09

Цитата:

интервал времени равныы 500 мс это слишком мало чтобы успеть убрать прозрачность.
Этот интервал я варьировал, но просто сам принцип у меня не получается

alexcon314 26.08.2009 15:12

Ну вот так, к примеру:
Код:

function fade_in() {
        clipToAnimate._alpha += 10;
        if (clipToAnimate._alpha >= 100) {
                _root.onEnterFrame = standby;
        }
}
function standby() {
        trace(clipToAnimate.delay);
        clipToAnimate.delay -= 1;
        if (clipToAnimate.delay < 0) {
                _root.onEnterFrame = fade_out;
        }
}
function fade_out() {
        clipToAnimate._alpha -= 10;
        if (clipToAnimate._alpha <= 0) {
                _root.onEnterFrame = null;
                attachRandomClip();
        }
}
function attachRandomClip() {
        var num = Math.ceil(Math.random() * 5 + 1);
        var mc = _root.attachMovie("clip" + num, "clipToAnimate", 1000, {_x:Stage.width / 2, _y:Stage.height / 2, _alpha:0, delay:100});
        _root.onEnterFrame = fade_in;
}
attachRandomClip();


Dezar 26.08.2009 15:12

что конкретно не получается?
по сути код..почти верный)))

ryudzaki 26.08.2009 15:30

можно ли сделать, чтобы у исчезающего клипа к примеру убывающая альфа была 20 или 50, а у появляющегося следующего нарастающая альфа была к примеру такого же значения????

Добавлено через 1 минуту
Цитата:

что конкретно не получается?
спасибо огромное, все получилось за исключением вопроса, стоящего выше

Dezar 26.08.2009 15:34

я не совсем понял значение фразы.
то есть чтобы она убывала до 20 или 50?
можно.поставить проверку и все.
или чтоб она убывала на 20 или 50?это тож можно..
создав переменную, которая будет принимать то или иное значение..а последующии мувик будет брать эту переменную,после чего снова заменит значение

ryudzaki 26.08.2009 15:42

Попробую схематично:
время: n сек n+1 сек
1клип: альфа 100------50------0
2клип: альфа 0---------50----100

Т.е. чтобы одновременно один мувик исчезал, но в этот же момент, а не после, второй появлялся. Как бы один наслаивался на другой??

Dezar 26.08.2009 15:47

ааа.
так это еще проще)
в начале цикла надо обявить..что клип1 альфа равен 100
а клип 2 альфа ноль.
далее создает переменную которая и будет значение альфа(какои надо)
и это значение отнимаем от альфы клипа 1
а к альфе клипа 2 добавляем))
вроде так

ryudzaki 26.08.2009 15:51

если не трудно, плиз, можете на примере!

Добавлено через 35 секунд
и где именно цикл создавать?


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

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