PDA

Просмотр полной версии : Задрежка в выполнении кода.


SnakefromRussia
09.10.2007, 01:16
Доброе время суток. У меня возник вопрос на тему, как сделать задержку в выполнении кода?
В моем примере случайным генератором чисел на рабочем поле ставится точка, и через 5 секунд она так же случайно ставится в другое место. Вопрос в том как задать эту паузу в 5 секунд в выполнении? Обычно это делается таймерами или командами типа wait, delay...но ничего похожего я что-то не нашел. Спасибо.

udaaff
09.10.2007, 01:17
setInterval

SnakefromRussia
09.10.2007, 01:22
Спасибо :) , убежал пробовать

SnakefromRussia
09.10.2007, 02:00
:( Что то не получается заставить работать...вешаю такой вот код на муви клип...но ничего не происходит

onClipEvent (enterFrame) {
function RNDPosSet() {
this._x = Math.random()*this._parent.GameField._width;
this._y = Math.random()*this._parent.GameField._height;
updateAfterEvent();
}
setInterval(RNDPosSet,5000);
}

udaaff
09.10.2007, 02:13
Код на мувиках писали в прошлом веке. С большой буквы пишутся названия классов и конструкторов.
Код в первом кадре:
setInterval(rndPosSet, 5000, my_mc);
function rndPosSet(mc) {
mc._x = Math.random()*mc._parent.gameField._width;
mc._y = Math.random()*mc._parent.gameField._height;
}

SnakefromRussia
09.10.2007, 02:23
Спасибо,
но почему то даже так не работает (

udaaff
09.10.2007, 02:28
Что трейсы выводят?
setInterval(rndPosSet, 5000, my_mc);
function rndPosSet(mc) {
trace(mc)
trace(mc._parent.gameField)
mc._x = Math.random()*mc._parent.gameField._width;
mc._y = Math.random()*mc._parent.gameField._height;
}

SnakefromRussia
09.10.2007, 02:34
Хм...я так понимаю, это вот это?
_level0.mob_marker
undefined
_level0.mob_marker
undefined
_level0.mob_marker
undefined

udaaff
09.10.2007, 02:38
Значит путь не правильно указываете (mc._parent.gameField). Подазреваю, что вместо mc._parent.gameField, надо просто mc._parent.

SnakefromRussia
09.10.2007, 02:43
Спасибо! )
Действительно, убрал gameField и муви клип стал случайно раскидываться по полю ) , здорово... Хотя вот это сообщение все еще выводится
_level0.mob_marker
undefined
_level0.mob_marker
undefined
_level0.mob_marker
undefined

udaaff
09.10.2007, 02:45
Напите вместо trace(mc._parent.gameField), trace(mc._parent) :)

SnakefromRussia
09.10.2007, 02:47
А все понял )))
Я туплю видимо неслабо.
Спасибо большое )

Joac
21.12.2007, 15:06
привет,
у меня похожая проблема:

код в первом кадре:

var vis:Number = 0;

function hideGovBoard(k)
{
clearInterval(vis);
_root["m" + k]._x = 1000;
_root["image"+k]._x = 1000;
}

код в мувике:
on(rollOut)
{
_root.vis = setInterval(_root.hideGovBoard, 1000, _root.m1.j);

filters = [_root.DecBrightness];
}

и такое впечатление что на clearInterval(vis); все заканчиваеться.
_root["m" + k]._x = 1000;
_root["image"+k]._x = 1000;
эти координаты не присваиваються:(

неужеле нету нормального делея во флеше?
может есть просто долговыполняющаяся операция?

когда я убираю clearInterval setInterval
все работает отлично(

clearInterval точно обнуляет интервал?
что должно оставаться в перенеменно vis
после clearInterval(vis); ?

потому что у меня после каждого _root.vis = setInterval(_root.hideGovBoard, 1000, _root.m1.j); он увеличиваеться на 1 и clearInterval(vis) никак его не уменьшает

Aisaid
21.12.2007, 20:13
попробуй так:
...
clearInterval(_root.vis);
...