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

ilkadi 24.01.2007 08:42

Создание клипа не работает.
 
Мне нужно, чтобы через промежутки времени от 10 до 20сек появлялись клипы на кокой-то высоте и на произвольном месте по х.
к контроллеру я присоединил следующее:
Код:

onClipEvent (load) {
        //рассчитываем до запуска тарелки
                endTime = setInterval(10000 + Math.random()*100000);
}
onClipEvent (enterFrame) {
        timeLeft = (endTime - getTimer())/1000;
        //рассчитываем когда кончится время в секундах
        if (timeLeft <=0) {       
        //когда оно заканчивается копируем из библиотеки
        //клип myMovieClip
                attachMovie("myMovieClip","newclip"+_level);
                //ставим в примерно нужное место
                _root["newclip"+_level]._y = int (380-Math.random()*5000);
                _root["newclip"+_level]._x = int(-2900+Math.random()*60000);       
                //увеличиваем счетчик
          _level++;               
        }
}

К клипу в библиотеке я присоединил следующее:rtfm: :
Код:

onClipEvent (mouseDown) {
        this._parent.removeMovieClip();
        //если прямое попадание то удаляем
}
onClipEvent (load) {
        a = getTimer()+20000;
                this._root._x+=20;
                //ставим таймер 20 сек
}
onClipEvent (enterFrame) {
        c = (a - getTimer())/1000;
        if (c <=0) {
                //если время вышло то удаляем
                this.removeMovieClip();
                }
}

скажите пожалуйста, где ошибка?:confused:
заранее спасибо.

CorC 24.01.2007 10:13

меня поразило несколько строк:
Код:

endTime = setInterval(10000 + Math.random()*100000);
setInterval(функция,интервал,параметры) , а у вас?
Код:

this._root._x+=20;
без коментов, просто жесть :)
Код:

_root["newclip"+_level]._x = int(-2900+Math.random()*60000);
а вы клипы вообще собираетесь увидеть? :)

Aziz Zaynutdinoff 24.01.2007 11:25

_level — зарезервированное слово;
в коде огромная масса ошибок, из-за которых он просто ну убей его работать не будет. Для того, чтобы каждую секунду ставить мувик с произвольными координатами необходимо:
Код:

//создаём мувик, в который будем attach'ить содержимое
var _mc:MovieClip = this.createEmptyMovieClip("stage_mc", this.getNextHighestDepth());

//устанавливаем интервал в 1 сек (1000 миллисекунд)
var intervalID = setInterval(doAttach, 1000, _mc);

//функция, вызываемая раз в секунду, которая производит attach, в переданный ей MovieClip
function doAttach(_mc:MovieClip):Void
{
    //берём следующую бОльшую глубину
    var depth:Number = _mc.getNextHighestDepth();
    //крепим объект из библиотеки, с дополнительным параметром initObj, где указываем координаты, в которых следует разместить новый MovieClip
    var tmp_mc:MovieClip = _mc.attachMovie("myMovieClip", "newclip" + depth + "_mc", depth, {_x:int(Math.random()*Stage.width), _y:int(Math.random()*Stage.height)});
   
    //Вешаем на созданный MovieClip событие. Здесь можно также сделать onEnterFrame и прочие...
    tmp_mc.onRelease = function()
    {
        //Если кликаем по объекту, то он удаляется.
        this.removeMovieClip();
    }
}


ilkadi 25.01.2007 08:37

Огромное спасибо. Я знал что у меня уймища ошибок но как и где искать не знал.

CorC 25.01.2007 10:14

искать можно втавляя trace везде на своем пути

ilkadi 27.01.2007 08:32

А как сделать так чтобы спустя 30сек клип удалялся?

Kikasso 27.01.2007 09:42

Код:

setTimeout( function(){mc.removeMovieClip();}, 30*1000);
или
Код:

setTimeout( mc, "removeMovieClip", 30*1000);
должно сработать и то и то, навыбор. Это для 8-ки.

ilkadi 29.01.2007 08:37

спасибо большое. Приятно когда так быстро все срабатывает!

ilkadi 30.01.2007 08:18

:o а какой обработчик нужно перед ими поставить? а то промучился иничо не получилось...:(
Код:

tmp_mc.?????= function(){setTimeout( function(){mc.removeMovieClip();}, 30*1000);}

CorC 30.01.2007 10:20

onPress :) ыыы
смотря на что нужно удаление делать


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

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