Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.08.2008, 13:27
Mirzon вне форума Посмотреть профиль Отправить личное сообщение для Mirzon Найти все сообщения от Mirzon
  № 1  
Ответить с цитированием
Mirzon

Регистрация: Aug 2008
Сообщений: 2
По умолчанию Странный эффект работы 2х скриптов.

Здравствуйте!
В мувике для создания эффекта минералки скриптом прописано движение пузырьков Всё это в 3-х кадрах.
1-ый кадр:
Код:
maxobject = "250";
for (counter = 1; Number(counter) < Number(maxobject); counter = Number(counter) + 1)
{
    duplicateMovieClip("/round", "round" add counter, counter);
    setProperty("round" add counter, _x, 5 + random(995));
    setProperty("round" add counter, _y, 900 + random(50));
    scale = Number(50 + random(50)) + 10;
    setProperty("round" add counter, _xscale, scale);
    setProperty("round" add counter, _yscale, scale);
}
2-ой кадр:
Код:
for (counter = 1; Number(counter) < Number(maxobject); counter = Number(counter) + 1)
{
    setProperty("round" add counter, _x, getProperty("round" add counter, _x) + random(7) - 3);
    setProperty("round" add counter, _y, getProperty("round" add counter, _y) - (getProperty("round" add counter, _xscale) - 20) / 7 - 1);
    if (getProperty("round" add counter, _y) < 600)
    {
        setProperty("round" add counter, _x, 5 + random(995));
        setProperty("round" add counter, _y, 900 + random(50));
        scale = Number(50 + random(50)) + 5;
        setProperty("round" add counter, _xscale, scale);
		setProperty("round" add counter, _yscale, scale);
    }
}
3-ий кадр:
Код:
gotoAndPlay(_currentframe - 1);
Одновременно с этим в мувике при наведениимышки на пункт меню создается эффект вождение пальцем по воде. И для клипа с изображением пунктов меню прописывается:

Код:
onClipEvent (mouseMove) {
	n++;
	if (n == 5) {
		i++;
		duplicateMovieClip(_root.effect, i, i);
		setProperty("/" add i, _x, _root._xmouse);
		setProperty("/" add i, _y, _root._ymouse);
		n=0;
	}
}
Но загвоздка в том что, чем больше водишь мышкой по мувику, тем меньше становится кол-во пузырьков и в конце концов они вообще пропадают. Подскажите пожалуйста, как сделать, чтобы движение мышки не влияло на скрипт пузырьков и их количество и движение длилось постоянно.


Последний раз редактировалось Mirzon; 13.08.2008 в 13:30.
Старый 13.08.2008, 14:29
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 2  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
Код:
duplicateMovieClip(_root.effect, i, i+300);
у Вас очень архаичный синтаксис.
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 13.08.2008, 15:18
Mirzon вне форума Посмотреть профиль Отправить личное сообщение для Mirzon Найти все сообщения от Mirzon
  № 3  
Ответить с цитированием
Mirzon

Регистрация: Aug 2008
Сообщений: 2
Double, спасибо Вам огромное, помогло. А Вы не могли бы объяснить причину такого поведения мувика и почему именно +300.

"у Вас очень архаичный синтаксис." Вы могли бы подсказать как можно оптимизировать или привести эти скрипты в человеческий вид?

Старый 13.08.2008, 15:30
Double вне форума Посмотреть профиль Отправить личное сообщение для Double Найти все сообщения от Double
  № 4  
Ответить с цитированием
Double
 
Аватар для Double

Регистрация: Mar 2001
Сообщений: 1,147
можно и меньше ) но не на много ))) у вас 250 пузырьков, которые живут на слоях с 1го и выше. вот эти глубины для кругов на меню занимать и не нужно. в моём случае круги будут располагаться выше 300го уровня. изначально у Вас круги замещали пузырьки именно из-за того, что Вы их создавали на той же глубине, где жили пузыри.
о синтаксисе разговор очень долгий.
Код:
setProperty("round" add counter, _x, 5 + random(995));
теперь это пишут так:
Код:
this["round"+counter]._x = 5 + random(995);
да много чего поменялось со времён 4го флеша )))
__________________
Кто говорит, тот не знает. Кто знает, тот не говорит.

Старый 14.08.2008, 06:31
Eric Gurt вне форума Посмотреть профиль Отправить личное сообщение для Eric Gurt Посетить домашнюю страницу Eric Gurt Найти все сообщения от Eric Gurt
  № 5  
Ответить с цитированием
Eric Gurt
 
Аватар для Eric Gurt

Регистрация: Oct 2006
Сообщений: 395
ты же создаешь мувики в одни и те же индексы.
сначала ты создавал пузырьки в индексы 1-250, а затем ты при ведении мышкой опять пишешь какой-то эффект в те же индексы вместо пузырьков.

Замени коды на:

Код:
_root.maxobject = 250;
for (counter = 1; counter < _root.maxobject; counter++)
{
    duplicateMovieClip("/round", "round" + counter, counter);
    _root["round"+counter]._x = 5 + Math.random()*995;
    _root["round"+counter]._y = 900 + Math.random()*50;

    scale = 50 + Math.random()*50 + 10;
    _root["round"+counter]._xscale = scale;
    _root["round"+counter]._yscale = scale;
}
Код:
for (counter = 1; counter < _root.maxobject; counter++)
{
    _root["round"+counter]._x += Math.random()*7 - 3;
    _root["round"+counter]._y -= (_root["round"+counter]._xscale-20)/7-1;

    if (_root["round"+counter]._y < 600)
    {
       _root["round"+counter]._x = 5 + Math.random()*995;
       _root["round"+counter]._y = 900 + Math.random()*50;

       scale = 50 + Math.random()*50 + 10;
       _root["round"+counter]._xscale = scale;
       _root["round"+counter]._yscale = scale;
    }
}
Код:
gotoAndPlay(_currentframe - 1);
Код:
onClipEvent (mouseMove) 
{
	n++;
	if (n == 5) 
            {
		i++;
		duplicateMovieClip(_root.effect, "eff"+i, _root.maxobject + i);
                          _root["eff"+i]._x = _root._xmouse;
                          _root["eff"+i]._y = _root._ymouse;
		n=0;
	}
}


Последний раз редактировалось Eric Gurt; 14.08.2008 в 06:41.
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:22.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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