Форум 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)
-   -   Центр. управление мувиками и setInterval (http://www.flasher.ru/forum/showthread.php?t=90226)

Ksюta 05.01.2007 18:06

Центр. управление мувиками и setInterval
 
Вложений: 1
Привет всем)
Опять застряла... прикрепляю упрощенный пример. Вот хоть что делай, никак не пойму как сделать так чтобы эти уже загруженные мувики не останавливались всякий раз когда setInterval подгружает следующий клип, а плыли дальше... знаю что это происходит из-за строки
Код:

eval("new_mc"+i)._x += 8;
но что с ней делать ума не приложу. Если _x step прописывать отдельно в каждый мувик, тогда вроде работает, но получается слишком много onEnterFrame-ов.

drwhite 05.01.2007 18:39

А что должно получиться?
Может там с другой стороны зайти,
например сначала перенести код из клипа
в кадр..

DOG-Paul 05.01.2007 18:45

Убирай весь код с клипа!
И Вот что пиши в кадре:
Код:

var y:Array = [50, 100, 150, 200, 250];
var my_arr:Array = ["mc1", "mc2"];
var i:Number = 10;
function skyScript():Void {
        var mc:MovieClip = attachMovie(my_arr[random(2)], "new_mc"+i, i++);
        mc._x = 50;
        mc._y = y[random(5)];
        mc.onEnterFrame = function():Void  {
                this._x += 8;
                if (this._x>300) {
                        this.removeMovieClip();
                }
        };
}
ID_sk = setInterval(skyScript, Math.random()*1000+500);
skyScript();


Ksюta 05.01.2007 19:04

Ух! DOG-Paul, биг-биг сенкс! А я 5 часов пропарилась... какая ж это жуть, быть начинающим))) что бы я без вас делала.

DOG-Paul 05.01.2007 19:07

=) всегда пжалуста =)

Ksюta 05.01.2007 19:37

А то что глубина в этом варианте бесконечно прирастать будет, это ничего, или её лучше зациклить, чтобы достигая какого-то значения возвращалась к начальному?

DOG-Paul 05.01.2007 19:54

Ничего страшного =)

Ksюta 05.01.2007 21:32

Новый вопрос по старой теме. Ввела пару новых переменных:
scale и size. Код выглядит таким образом:
Код:

var size:Array = [50,70, 80, 90, 100, 110]
var y:Array = [50, 100, 150, 200, 250];
var my_arr:Array = ["mc1", "mc2","mc3"];
var i:Number = 10;
function skyScript():Void {
var sky:MovieClip = attachMovie(my_arr[random(3)], "new_mc"+i, i++);
scale = size[random(6)];
sky._xscale = scale;
sky._yscale = scale;
sky._x = -100;
sky._y = y[random(5)];
sky.onEnterFrame = function():Void  {
this._x += 5;
if (this._x>800) {
this.removeMovieClip();
}
};
}
ID_sk = setInterval(skyScript, Math.random()*1000+500);
skyScript();

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

DOG-Paul 06.01.2007 14:02

Код:

var size:Array = [50,70, 80, 90, 100, 110]
var y:Array = [50, 100, 150, 200, 250];
var my_arr:Array = ["mc1", "mc2","mc3"];
var i:Number = 10;
function skyScript():Void {
var sky:MovieClip = attachMovie(my_arr[random(3)], "new_mc"+i, i++);
var size_sky:Number = random(6);
var scale:Number = size[size_sky];
sky.size_sky = size[size_sky];
sky._xscale = scale;
sky._yscale = scale;
sky._x = -100;
sky._y = y[random(5)];
sky.onEnterFrame = function():Void  {
this._x += this.size_sky*0.05; // ну здесь какая-то зависимость
if (this._x>800) {
this.removeMovieClip();
}
};
}
ID_sk = setInterval(skyScript, Math.random()*1000+500);
skyScript();


Ksюta 06.01.2007 14:28

Вложений: 1
Спасибо DOG-Paul! Классный эффект поучился! Вообще мне нужен был он для програмного неба, но даже с шариками смотрится эффектно. Исходничик если кому интересно, кладу)


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

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