Форум 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=100446)

random13 27.08.2007 22:45

работа с интервалами
 
вопрос в следующем, хочу создать функцию которая по нажатию на объект будет его плавно увеличивать в размерах,
но что то совсем запутался с интервалами, не могу понять почему не работает.. плиз помогите

Код:

on (release) {
        setInterval(scale(),0.5);
        function scale() {
                _xscale += 5;
                _yscale += 5;
                a = 0;
                a += 5;
        }
        if (a>50) {
                clearInterval(scale());
                a = 0;
        }
}


silin 27.08.2007 22:55

не работает, потому что..
сравни:
Код:

on (release) {
        clearInterval(scaleInterval);//если клинуть во время увеличения, то надо предыдущий убить
        var scaleInterval=setInterval(scale,50);
        var a = 0;
        function scale() {
                _xscale += 5;
                _yscale += 5;
                a += 5;
                if (a>50) {
                        clearInterval(scaleInterval);
                }
        }
}


random13 27.08.2007 22:58

уау спасибо огромнейшее, я просто полный ноль в actionscript'e

random13 27.08.2007 23:14

как бы еще так сделать чтоб у объекта сохраналось положение на середине экрана

silin 27.08.2007 23:22

Код:

on (release) {
        clearInterval(scaleInterval);//если клинуть во время увеличения, то надо предыдущий убить
        var scaleInterval=setInterval(scale,50);
        var a = 0;
        function scale() {
                _xscale += 5;
                _yscale += 5;
                _x=Stage.width/2;//если мувик сам отцентрирован; если нет, то надо считать куда его сдвинуть..
                _y=Stage.height/2;
                a += 5;
                if (a>50) {
                        clearInterval(scaleInterval);
                }
        }
}


random13 27.08.2007 23:58

ну и последний вопрос а как бы так сделать чтоб при нажатии вне мувика он возвращался в прежнее состояние

Код:

on (release) {
        var xscale=_xscale;
        trace (xscale);
        clearInterval(scaleInterval);
        var scaleInterval=setInterval(large,50);
        var a = 0;
        function large() {
                _xscale += 5;
                _yscale += 5;
                a += 5;
                if (a>50) {
                        clearInterval(scaleInterval);
                }
        }
}
on (releaseOutside) {
        clearInterval(scaleInterval);
        var scaleInterval=setInterval(small,50);
        function small() {
                _xscale -= 5;
                _yscale -= 5;
                a += 5;
                if (a<xscale) {
                        clearInterval(scaleInterval);
                }
        }
}


silin 28.08.2007 00:07

releaseOutside - это если юзер нажал на мувике, а отпустил вне..
нажатие мимо мувика надо имитировать: подложить под твой прозрачный мувик и на его нажатие реагировать.., отслеживать onMouseDown/onMouseUp с анализом hitTesta'а твоего мувика.., вариантов много..

random13 28.08.2007 00:25

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

silin 28.08.2007 00:44

Вложений: 1
надо:
-отказаться писать код на мувиках;
-продумать логику что при при каком действии юзера должно происходить..
подсказать тут сложно, можно только сделать..
см. аттач, например: при клике смотрим на кого нажали- его увеличиваем, остальных(или всех) уменьшаем..

random13 28.08.2007 01:06

это и нужно, огромнейшее спасибо, без тебя бы я никуда!!!


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

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