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

Olejan 06.09.2006 22:36

Заполнение мувика другими мувиками. ВИСНЕТ!!!
 
Код:

function gR() {
        return {x:Math.round(_root.mcR.mcO._x+Math.random()*_root.mcR.mcO._width), y:Math.round(_root.mcR.mcO._y+Math.random()*_root.mcR.mcO._height)};
}
function pMc() {
        var r2 = gR();
        while (!_root.mcR.mcO.hitTest(r2.x, r2.y, true)) {
                r2 = gR();
        }
        var mc2 = _root.mcR.attachMovie('bl', 'bl'+i2, i2++);
        mc2._x = r2.x;
        mc2._y = r2.y;
}
var i2 = 100;
tmr1 = setInterval(pMc, 1);

Не пойму почему виснет...

Olejan 06.09.2006 22:54

Причем интервал увеличивал... Виснет сразу, после обращения к функции pMc. Что делать?

PSoWP 07.09.2006 03:21

Код:

var a1:Number = _root.mcR.mcC._x;
var a2:Number = _root.mcR.mcC._width;
var a3:Number = _root.mcR.mcC._y;
var a4:Number = _root.mcR.mcC._height;
function pMc() {
        var r2:Object = {x:Math.round(a1+(a2*Math.random())), y:Math.round(a3+(a4*Math.random()))};
        trace(r2.x);
        while (!_root.mcR.mcC.hitTest(r2.x, r2.y, true)) {
                r2 = {x:Math.round(a1+(a2*Math.random())), y:Math.round(a3+(a4*Math.random()))};
        }
        var mc2:MovieClip = _root.mcR.attachMovie('bl', 'bl'+i2, i2++);
        mc2._x = r2.x;
        mc2._y = r2.y;
}
var i2:Number = 100;
var tmr1:Number = setInterval(pMc, 1);

Одна ошибка это то что в обозначении мувика мсС одна или несколько русских букв (из-за этого все их параметры ундефинед)
Вторая ошибка в формуле (хиттест вседа фолс) этого я править не стал потому что не знаю что конкретно тебе надо

Olejan 07.09.2006 13:01

Никакой ошибки там не было в обозначении.
Виснет и с твоим кодом. Я тоже выяснил уже что виснет именно из-за этой строчки:
Код:

while (!_root.mcR.mcO.hitTest(r2.x, r2.y, true)) {
Но смысл в том, чтобы изменять координаты пока точка не попадает на объект mcR.mcO...

etc 07.09.2006 13:21

Olejan, объекты нужно называть осмысленно, а не абы как. Тогда и проблем не возникнет.


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

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