Форум 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)
-   -   сгенерированные кадры в move clip влияет на _root. где ошибка? (http://www.flasher.ru/forum/showthread.php?t=142449)

alex001 21.07.2010 18:05

сгенерированные кадры в move clip влияет на _root. где ошибка?
 
написал такой код в move clip:
Код AS1/AS2:

var ti2 = Math.floor(Math.random()*2500)+3000;
function runclip() {
        var ci = Math.floor(Math.random()*4);
        if (ci == 1) {
                this.gotoAndPlay(9);
        }
        if (ci == 2) {
                this.gotoAndPlay(18);
        }
        if (ci == 3) {
                this.gotoAndPlay(2);
        }
        if (ci == 4) {
                this.gotoAndPlay(9);
        }
        var ti2 = Math.floor(Math.random()*2000)+5000;
}
 
if (!ti) {
        ti = setInterval(runclip, ti2);
}

в нем генерируется случайный кадр и случайное время через которое он проигрываеться,
но когда я перехожу между кадрами в _root, то кадры(в _root) начинают мерцать, меняться в случайном порядке. наверное генерация кадров влияет и на _root, но почему и как это исправить?

in4core 21.07.2010 18:39

Код AS1/AS2:

function runclip() {
        var ci = Math.floor(Math.random()*4);
 
if (ci == 1 || ci==4) {  // это вопервых
                this.gotoAndPlay(9);
        }
        else if (ci == 2) {
                this.gotoAndPlay(18);
        }
        else  {
                this.gotoAndPlay(2);
        }
 
 
}
 
 
ti = setInterval(runclip, Math.floor(Math.random()*2500)+3000); // во вторых

Добавлено через 4 минуты
возможно у вас ошибка в том что !ti и ti быстро меняются, но я не вижу всего кода. А по теме
Код AS1/AS2:

var ti2 = Math.floor(Math.random()*2000)+5000;

зачем внутри runClip дублируется не ясно!!! это *****_код , тоесть вы пишите лишнее, которое даж работать не будет. В моем приведенно коде интервал поменяется тока 1 раз. если хотите менять постоянно то :

Код AS1/AS2:

var ti2 = Math.floor(Math.random()*2500)+3000;
 
function runclip() {
        var ci = Math.floor(Math.random()*4);
 
if (ci == 1 || ci==4) {  // это вопервых
                this.gotoAndPlay(9);
        }
        else if (ci == 2) {
                this.gotoAndPlay(18);
        }
        else  {
                this.gotoAndPlay(2);
        }
 
 ti2 = Math.floor(Math.random()*2500)+3000// заметим что без var !!!
}
 
 
ti = setInterval(runclip, ti2); // во вторых


alex001 21.07.2010 19:00

я допустил опечатку, там где
Код AS1/AS2:

if (ci == 4) {
        this.gotoAndPlay(9);
}

вместо 9 должно быть 35
Код AS1/AS2:

var ti2 = Math.floor(Math.random() * 2500) + 3000;
 
function runclip()
{
        var ci = Math.floor(Math.random() * 4);
 
        if (ci == 1)
        {
                this.gotoAndPlay(9);
        }
        else if (ci == 2)
        {
                this.gotoAndPlay(18);
        }
        else if (ci == 3)
        {
                this.gotoAndPlay(2);
        }
        else if (ci == 4)
        {
                this.gotoAndPlay(35);
        }
 
        ti2 = Math.floor(Math.random() * 2500) + 3000;
}
 
ti = setInterval(runclip, ti2);

но когда я вставляю такой код, то он не работает. move clip должен кождые Math.floor(Math.random()*2500)+3000 выполнять runclip() в котором он должен по сгенерированному числу которое сохроняеться в переменной ci переходить в кадры, но этого не происходит.

Добавлено через 71 час 49 минут
кто-нибудь может ответить на мой вопрос? этот код не работает. в чем проблема?


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

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