![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия
Сообщений: 6
|
Привет народ !
Помогите пожалуйста: нужно чтобы по нажатию кнопки запускались например 20 мувиков (шарик,бегающий по кругу), но если делать по циклу просто через DuplicateMovie - в этом случае они одновременно запустяться и будет летать один жирный шарик (т.е. 20 друг над другом), а нужно чтобы один за другим 20 штук, скажем через 0.2 секунды последовательно друг за другом вылетали. Наверно нужно использовать GetTimer() внутри цикла, но не знаю как. Подскажите. Заранее спасибо. Григорий. |
|
|||||
|
смотри в аттаче.
__________________
Read the manual!:rolleyes: |
|
|||||
|
..
__________________
Спирт - враг ваш! Гоните его! | Flash/Flex Blog |
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия
Сообщений: 6
|
Попробовал, но нифига неполучается.
Она (в смысле flash) по-прежнему пускает их 20 штук, но одновременно, игнорируя временную задержку, хотя вроде правильно пишу цикл... посмотрите, в чем ошибка, блин ?: on (press) { i=1; pause = 200; time = getTimer(); if (i!=0 && i<=20) { if (time + pause > getTimer()) { setProperty ("positron", _alpha, "100"); tellTarget ("positron") { gotoAndPlay ("injection"); } pos_d = "positron" add n; duplicateMovieClip ("positron", "pos_d", n); n = Number(n)+1; i++; } time = getTimer(); } } |
|
|||||
|
по нажатию на кнопку та должен тока запустить создание мувов (установить флажек). А запускать мувы должен нейкий контроллер (мувик), который проверяет таймер и количество запученных мувов и, если надо пускает еще.
Для кнопки напиши: on(release ){ _root.attachMovie("ball", "ball0",0); //мув из библиотеки _root.ball0._x = 150; _root.ball0._y = 150; _root.currentBall = 1; //флаг в 1 _root.lastTimer = getTimer(); //зачечь время }Для контроллера напиши: onClipEvent(enterFrame) { if (_root.currentBall != 0 && _root.currentBall < _root.ballAmount) {//если флаг не ноль (процес запущен) и не все //мувывыпущенны тогдп if (_root.lastTimer + _root.pause > getTimer()) { //если пора пускать новый шар - пускаем name = "ball" + _root.currentBall; _root.ball0.duplicateMovieClip(name, _root.currentBall); _root[name]._x = _root.ball0._x + 1*_root.currentBall; _root[name]._y = _root.ball0._y + 1*_root.currentBall; _root.currentBall++; //опять засекаем время _root.lastTimer = getTimer(); } } } ясно?
__________________
Read the manual!:rolleyes: |
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия
Сообщений: 6
|
Привет,
спасибо за помощь. Но у меня нифига не получается. Сначала пытался сделать по описанному образцу, - ноль. Затем просто скопировал и передрал твой исходный код. Все равно ноль эмоций. Перепроверил.... Посылаю свой исходник - может взглянешь и скажешь почему не работает. Заранее весьма благодарен. |
|
|||||
|
Во-первых, для того чтобы заработала конструкция
_root.attachMovie("posy2", "posy0", 0); нужно в Library нахать на твоем климе-позитроне правой мышкой, выбрать Linkage, там выбрать"Export this symbol" и в поле для ввода ввести posy2. Во-вторых в Actions для кнопки исправь currrentPos на currentPos (с двумя буквами r). В-третьих, надо повнимательней быть и не допускать таких опечаток в дальнейшем. Дерзай.
__________________
Read the manual!:rolleyes: |
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия
Сообщений: 6
|
Спасибо за помощь. Опечаткв-то это ерунда. Я ее потом нашел сам и исправил - бывает. А вот насчет того что нужно делать Export Movie clip - я не знал... Теперь кажется понял что к чему. Но все же вопрос - как работает эта задержка? Скажем, если я ее значение увеличиваю - ничего не происходит. А хотелось бы чтобы дистанция между шариками увеличивалась. Т.е. чем больше значение pause, тем больше между ними расстояние. При том же количестве.
Или это нужно делать через координатное приращение ? Попробую повозиться, но если можешь ответить - please. |
|
|||||
|
А вот так просто нельзя? Ну это так, сыро, но в принципе, зачем все эти навороты с задержкой времени? И управлять расстоянием между дупликатами просто...
|
|
|||||
|
Координатное приращение не причем. Каждый вызов attachMovie загружает мув из библиотеки и аттачит его центром в центр целевого мува. После определенной задержки запущенный ранее мув успевает проиграть несколько фреймов. Т.е. если в нем что-то двигалось, то оно успеет переместиться на некоторое расстояние. После этого attachMovie пускает еще один такой же мув. И т.д. Таким образом, "расстояние" между мувами можно увеличить или увеличив задержку, или ускорив движение объетов в самом присоединяемом муве. По моему, первый способ предпочтительнее.
__________________
Read the manual!:rolleyes: |
![]() |
Часовой пояс GMT +4, время: 07:13. |
|
|
« Предыдущая тема | Следующая тема » |
|
|