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

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

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

Регистрация: Jun 2009
Сообщений: 19
The bomb! Альфа появление и исчезновение

Есть клип, в который грузятся 14 clip-ов из библиотеки с определенным промежутком времени от 500 до 4000 милисек. Задача состоит в том, чтобы к примеру клип1 появлялся с помощью альфы, отображался некоторое время и исчезал тоже альфой.
Потом появлялся следующий и т.д.
Я с этой задачей справиться не могу. Прошу Вашей помощи!
Код AS1/AS2:
function attachRandomClip() {
	var num = Math.ceil(Math.random() * 14 + 1);
	var clip = attachMovie("re" + num, "newName", 1000);
            clip._alpha = 0;
	function() {
	clip._alpha += 1
           if (clip._alpha >= 100)
           {
                 delete this.onEnterFrame;
           }
 }
 
		{
			clip._x = 0;
			clip._y = 0;
		}
}
var i = Math.ceil(Math.random() * 4000 + 500);
var intervalID:Number = setInterval(attachRandomClip, i);

Старый 26.08.2009, 15:04
Dezar вне форума Посмотреть профиль Отправить личное сообщение для Dezar Найти все сообщения от Dezar
  № 2  
Ответить с цитированием
Dezar

Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
для начала рекомендую то чему равно I засунуть в сам интервал..а то у вас данное значние будет определено только 1 раз.и меняться больше не будет.

во вторых.интервал времени равныы 500 мс это слишком мало чтобы успеть убрать прозрачность.

в третьих.
я бы сделал внутри функции onEnterFrame и в нем бы увиличивал альфу...

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

Регистрация: Jun 2009
Сообщений: 19
Цитата:
интервал времени равныы 500 мс это слишком мало чтобы успеть убрать прозрачность.
Этот интервал я варьировал, но просто сам принцип у меня не получается

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

модератор форума
Регистрация: Jun 2006
Сообщений: 3,260
Записей в блоге: 28
Отправить сообщение для alexcon314 с помощью ICQ
Ну вот так, к примеру:
Код:
function fade_in() {
	clipToAnimate._alpha += 10;
	if (clipToAnimate._alpha >= 100) {
		_root.onEnterFrame = standby;
	}
}
function standby() {
	trace(clipToAnimate.delay);
	clipToAnimate.delay -= 1;
	if (clipToAnimate.delay < 0) {
		_root.onEnterFrame = fade_out;
	}
}
function fade_out() {
	clipToAnimate._alpha -= 10;
	if (clipToAnimate._alpha <= 0) {
		_root.onEnterFrame = null;
		attachRandomClip();
	}
}
function attachRandomClip() {
	var num = Math.ceil(Math.random() * 5 + 1);
	var mc = _root.attachMovie("clip" + num, "clipToAnimate", 1000, {_x:Stage.width / 2, _y:Stage.height / 2, _alpha:0, delay:100});
	_root.onEnterFrame = fade_in;
}
attachRandomClip();


Последний раз редактировалось alexcon314; 26.08.2009 в 15:20.
Старый 26.08.2009, 15:12
Dezar вне форума Посмотреть профиль Отправить личное сообщение для Dezar Найти все сообщения от Dezar
  № 5  
Ответить с цитированием
Dezar

Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
что конкретно не получается?
по сути код..почти верный)))

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

Регистрация: Jun 2009
Сообщений: 19
можно ли сделать, чтобы у исчезающего клипа к примеру убывающая альфа была 20 или 50, а у появляющегося следующего нарастающая альфа была к примеру такого же значения????

Добавлено через 1 минуту
Цитата:
что конкретно не получается?
спасибо огромное, все получилось за исключением вопроса, стоящего выше


Последний раз редактировалось ryudzaki; 26.08.2009 в 15:33.
Старый 26.08.2009, 15:34
Dezar вне форума Посмотреть профиль Отправить личное сообщение для Dezar Найти все сообщения от Dezar
  № 7  
Ответить с цитированием
Dezar

Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
я не совсем понял значение фразы.
то есть чтобы она убывала до 20 или 50?
можно.поставить проверку и все.
или чтоб она убывала на 20 или 50?это тож можно..
создав переменную, которая будет принимать то или иное значение..а последующии мувик будет брать эту переменную,после чего снова заменит значение

Старый 26.08.2009, 15:42
ryudzaki вне форума Посмотреть профиль Отправить личное сообщение для ryudzaki Найти все сообщения от ryudzaki
  № 8  
Ответить с цитированием
ryudzaki

Регистрация: Jun 2009
Сообщений: 19
Попробую схематично:
время: n сек n+1 сек
1клип: альфа 100------50------0
2клип: альфа 0---------50----100

Т.е. чтобы одновременно один мувик исчезал, но в этот же момент, а не после, второй появлялся. Как бы один наслаивался на другой??

Старый 26.08.2009, 15:47
Dezar вне форума Посмотреть профиль Отправить личное сообщение для Dezar Найти все сообщения от Dezar
  № 9  
Ответить с цитированием
Dezar

Регистрация: Jan 2008
Адрес: Питер
Сообщений: 389
ааа.
так это еще проще)
в начале цикла надо обявить..что клип1 альфа равен 100
а клип 2 альфа ноль.
далее создает переменную которая и будет значение альфа(какои надо)
и это значение отнимаем от альфы клипа 1
а к альфе клипа 2 добавляем))
вроде так

Старый 26.08.2009, 15:51
ryudzaki вне форума Посмотреть профиль Отправить личное сообщение для ryudzaki Найти все сообщения от ryudzaki
  № 10  
Ответить с цитированием
ryudzaki

Регистрация: Jun 2009
Сообщений: 19
если не трудно, плиз, можете на примере!

Добавлено через 35 секунд
и где именно цикл создавать?

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:35.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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