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

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

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
По умолчанию Очередь

Еще раз здравствуйте.
Помогите написать "очередь". Немогу сложить алгоритм.
при изменениях некоторых данных срабативает такая часть кода
Код AS1/AS2:
_root.nextDepth=_root.special_items.getNextHighestDepth();
_root.special_items.attachMovie ('helz_damage', 'helz_damage'+_root.nextDepth , _root.nextDepth );
Клип "helz_damage" показует сколько жизней отнялось, но не учитан тот вариант когда идёт наложение двух "снятий" жизней. Тоесть почти одновременно у персонажа снялись жизни и получилось наложения двух анимаций. Подскажите как сложить очередь, что б к примеру был регистр аттаченных мувиков, и пока не достигнет определённый кадр предидущего ролика следущий не начинал воиспроизводиться. Извените за орфографические ошибки. Заранее благодарю за оказаную помощь.
__________________
return this...

Старый 12.01.2009, 20:39
ImpassIve вне форума Посмотреть профиль Отправить личное сообщение для ImpassIve Найти все сообщения от ImpassIve
  № 2  
Ответить с цитированием
ImpassIve
 
Аватар для ImpassIve

Регистрация: Jan 2009
Адрес: Россия/М.О./Курилово
Сообщений: 7
Если что - заранее прошу меня извинить, что побеспокоил, я бы сделал примерно так:
1. Управляющий клип _root.helz_clip, желательно невидимый.
Внутрь него на первый и единственный кадр вставить:
Код:
timer = 0;
a = 0;
timeToWait = //продолжительность анимации в кадрах + задержка;
function helz_d() {
	a++;
}
this.onEnterFrame = function() {
	if (a>0) {
		if (timer == 0) {
			_root.nextDepth = _root.special_items.getNextHighestDepth();
			_root.special_items.attachMovie('helz_damage', 'helz_damage'+_root.nextDepth, _root.nextDepth);
		}
		timer++;
		if (timer>=timeToWait) {
			timer = 0;
			a--;
		}
	}
};
2. А тогда ещё "_root.nextDepth=_root.special_items.getNextHighestDepth();
_root.special_items.attachMovie ('helz_damage', 'helz_damage'+_root.nextDepth , _root.nextDepth );"
надо заменить на _root.helz_clip.helz_d();

P.S. Сам код проверить не успел - если найду ошибки то постараюсь исправить.

P.S. Забыл уточнить - этот код работает на Macromedia Flash 8 Professional, на Adobe или MX 2004 его воздействие не изучено


Последний раз редактировалось ImpassIve; 13.01.2009 в 19:42.
Старый 13.01.2009, 02:47
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 3  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Код AS1/AS2:
var minusCount:Number = 0                  // переменная для хранения числа проигрышей анимации
 
/*
ДО(!) каждого вызова функции minusLife надо прибавлять minusCount++
*/
 
function minusLife(){
   var hd:Number = _root.special_items.getNextHighestDepth();        // запишем глубину в переменную
   var mc:MovieClip = _root.special_items.attachMovie ('helz_damage', 'helz_damage'+hd, hd);
 
   // теперь к мувику можно обращаться не только по имени, но и как к переменной
   // то есть можно и так
   // _root.special_items["helz_damage"+hd]
   // и вот так
   //mc
 
   // !!! ВАЖНО !!!
   // переменную mc видно только в пределах этой функции
 
   // добавим функцию, проверяющую, является ли проигрываемый кадр последним в этом мувике
   mc.onEnterFrame = function(){
      if(this._currentframe ==  this._totalframes){
         if(minusCount != 0){  // если надо - проигрываем анимацию еще раз
             minusCount -= 1;
             minusLife();
         }
         this.removeMovieClip()
      }
   }
}
__________________
...вселенская грусть

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

Регистрация: Sep 2008
Адрес: Черкассы
Сообщений: 1,167
Записей в блоге: 1
Отправить сообщение для AlexCooper с помощью ICQ Отправить сообщение для AlexCooper с помощью Skype™
2 gloomyBrain:
Неплохо придуманно, а главное ничего лишнего. Вот только с данными как быть. helz_damage - еще получает само значение + ИД_юзера за которым ролик закрепляет своё место расположение. Это всё есть, но вот данные вязать с minusCount.
__________________
return this...

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Ну так придумайте свойство minusCount для юнита и проверяйте его значение
а по поводу helz_damage - ну, проверяйте значение, исходя из него либо аттачите helz_damage_1, helz_damage_2, helz_damage_3.... или тот который нужен. Либо - (я так понимаю если это игрушка, то значение урона выводится текстом) - через клип с динамическим текстовым полем, в которое и будет вписано полученное helz_damage значение.
Все же просто =)
__________________
...вселенская грусть

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

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

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


 


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


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