![]() |
|
||||||||||
|
|
|
|||||
|
Еще раз здравствуйте.
Помогите написать "очередь". Немогу сложить алгоритм. при изменениях некоторых данных срабативает такая часть кода Клип "helz_damage" показует сколько жизней отнялось, но не учитан тот вариант когда идёт наложение двух "снятий" жизней. Тоесть почти одновременно у персонажа снялись жизни и получилось наложения двух анимаций. Подскажите как сложить очередь, что б к примеру был регистр аттаченных мувиков, и пока не достигнет определённый кадр предидущего ролика следущий не начинал воиспроизводиться. Извените за орфографические ошибки. Заранее благодарю за оказаную помощь.
__________________
return this... |
|
|||||
|
Регистрация: 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--;
}
}
};
_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. |
|
|||||
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() } } }
__________________
...вселенская грусть |
|
|||||
|
2 gloomyBrain:
Неплохо придуманно, а главное ничего лишнего. Вот только с данными как быть. helz_damage - еще получает само значение + ИД_юзера за которым ролик закрепляет своё место расположение. Это всё есть, но вот данные вязать с minusCount.
__________________
return this... |
|
|||||
|
Ну так придумайте свойство minusCount для юнита и проверяйте его значение
а по поводу helz_damage - ну, проверяйте значение, исходя из него либо аттачите helz_damage_1, helz_damage_2, helz_damage_3.... или тот который нужен. Либо - (я так понимаю если это игрушка, то значение урона выводится текстом) - через клип с динамическим текстовым полем, в которое и будет вписано полученное helz_damage значение. Все же просто =)
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|