Просмотр полной версии : массив! помогите...
Ситуация такая: имеем массив из 25 дупликатов одного мувика разбросанных по сцене. В каждом N-е количество фреймов, рэндомно проигрыивающихся по команде из отдельного управляющего клипа( с опять же рэндомной задержкой времени). Если вдруг _currentframe любого из мувиков оказывается не дай бог равной 2, то что-то происходит. Ок, эта цель достигнута. Однако происходит так, что в один момент времени _currentframe 2 случается одновременно с тремя или, что еще хуже с четырьмя членами массива. Это нихт гут. Нужно отследить, когда _currentframe хоть одного из дупликатов становится равной 2, то все остальные отдыхают, т.е., например if(clip13._currentframe ==2){clip1._currentframe!=2 || clip2._currentframe!=2... и так далее} И так для каждого :eek: . Но ведь есть какой то человеческий способ! Какой то типа "массивный" метод! Проясните кто-нибудь ситуацию пожалуйста.
greyshaman
28.06.2002, 16:52
Пришли код из управляющего мувика.
onClipEvent (load) {
pause = 150;
neue_start = 0;
}
onClipEvent (enterFrame) {
neue_start++;
if (Number(neue_start)>Number(pause)) {
neue_start = random(15);
_parent.g.gotoAndStop(random(36));
_parent.g1.gotoAndPlay(random(6));
_parent.r.gotoAndPlay(random(6));
_parent.r1.gotoAndPlay(random(6));
}
}
g, g1, r, r1 - это вложенные мувики. Меня интересует только мувик g. Его дупликатов на сцене 25. Надо чтоб в один момент времени только один из 25 g оставался во втором фрейме, а остальные 24 соскакивали со 2-го кадра, если их вдруг туда заносит.
Ну так на вскидку...........
Пусть номер массива будет номером мувика, тогда значение будет равно currentframe. А действия, т.к. они (как я понял) осуществляются из основного мувика, будут осуществляться таким образом:
флеш пробегается по масиву
находит элемент равный 2
генерирует название мувика из текста+номер элемента
осуществляет необходимые действия
Или сделай некую переменную выключатель которой будет присваиватья, например, 1, когда действие над каким-то мувиком совершается, тогда легко можно устроить проверку.
Тоесть если _root.switch==0 ,то действие совершается, а если _root.switch==1 то действие не совершается!
А действие должно состоять, например,
_root.k=1;
любой код
_root.k=0;
greyshaman
28.06.2002, 17:58
в root создаём
names = new Array();
в мувике g в 1 кадр пишем
names.push(this);
stop();
_root.onEnterFrame=function();
with(names.pop()){
play();
}
вроде должно сработать.
Блин, ничего не выходит, путаюсь... не догоняю. :(
greyshaman
28.06.2002, 17:59
спешишь :)
Нет, это я написал на секунду раньше :) Щас попробую разобраться, спасибо.
greyshaman
28.06.2002, 18:17
на всякий случай. Oшибочка.
_root.names.push(this);
И еще одна ошибочка ;)
_root.onEnterFrame = function() {
with (names.pop()) {
play();
}
};
Аутпут кричит:
Error: A 'with' action failed because the specified object did not exist.
И не срабатывает :(
greyshaman
28.06.2002, 19:07
_mc
_root.names.push(this);
stop();
_root
names = new Array();
_root.onEnterFrame = function() {
if(_root.names.length>0){
with (_root.names.pop()) {
play();
}
};
};
fixed ;)
2greyshaman. Не-а. Скорее всего я ситуацию не вполне обрисовал правильно. Или неправильно что-то делаю. Можно я исходник упрощенный выложу?
greyshaman
28.06.2002, 19:20
давай
Nox Noctis
28.06.2002, 19:30
ты выложи-выложи... а то шаман щас наколдует тут ;) :p
Облегченный вариант ;) , без наворотов, но суть проблемы остается: не должно проигрываться одновременно во втором фрейме больше одного дупликата мувика по имени "r"
greyshaman
28.06.2002, 19:46
2 Nox ты видел, как тут без бубна обойтись :p
2 derhab в цикле пока массив не пуст отправляй оставшиеся на ... где они у тебя, там, стоят
Так, допустим, в цикле я отслеживаю _currentframe ax.g
ax.g.onEnterFrame = function() {
trace(ax.g._currentframe);
};
Но как дальше заставить остаться только один ax.g во втором фрейме, а все остальные послать?
greyshaman
28.06.2002, 20:05
про первый кадр не забыл?
if(_root.names.length>0){
with (_root.names.pop()) {
play();
}
do{
а пошёл ты _root.names.pop() туда то
}while (_root.names.length>0);
}
а с FLA было бы проще ;)
Блин, а я что, не ФЛА послал???? :eek: Идиот!
greyshaman
28.06.2002, 20:09
:eek: :eek: :eek: :eek: :eek: :eek: :eek: :eek: :eek:
swf==fla
Дорогой Шаман, вдарь в свой бубен один раз хорошенько, а то у меня личной силы не хватает :)
Nox Noctis
28.06.2002, 20:21
мм... а ты не мог бы сказать чего ты вообще добиваешься ?
что должно получиться ? :)
мне любопытно... :p
Я хочу чтоб радужное свечение возникало периодически и единовременно токо в одном квадрате, а не в двух или трех, как это происходит сейчас. Если ты имел в виду технический момент.
greyshaman
28.06.2002, 20:42
брррррррррррр
цыкицы ... цыкицы
два рандома
1) интервал запуска random(150)+150 например
2)_root["ax"+(random(25))].g.play
и новая структура мувика
остальное моё сознание воспринимать отказывается
пойду нажрусь мухоморов или пива. :o
2Шаман. Ты уж определись что жрать, чего тебе хочется. Пиво и мухоморы совершенно разные вещи...
А я не программер, мне тяжело...
Nox Noctis
28.06.2002, 20:53
2greyshaman
мда...
мне б тоже мухоморов не помешало... :)))))
хоть мешать с пивом нельзя ни в коем случае... а то пото из транса не вернешься :))) там и останешься :)) представляешь какие у тебя проги тогда будут ? ;)
2derhab
а кроме этого эффекта там что будет ?
просто я, например, вообще нихрена не понял, что за структура такая хитрая... и зачем...
2Nox Noctis Как тебе сказать зачем.... Лучше вообще то смотреть окончательный вариант. Тогда и говорить можно. Если захочется. Но у меня вот загвоздка такая техническая. Я понимаю, что структура мувика далека от совершенства, но, что делать... как умею. Все это еще должно сопровождаться соответствующим саундом. А ты можешь предложить какой то еще вариант, а то Шамана уже мутит?
Nox Noctis
28.06.2002, 21:12
не, прости, не сегодня... у меня голова к концу рабочего дня совсем распухла... щас я в принципе не способен понять, что там у тебя творится (и не потому, что у тебя там все запутано :) )
Спасибо большое Nox! Я тут еще сам поколдую, но если поможешь, я уже признателен :)
Nox Noctis
28.06.2002, 23:10
твойю проблему решить очень просто :)
одного пива мне хватило чтобы осознать это :)
чтобы долго не объяснять, файлик я приаттачил.
мы просто передаем в момент попадания во второй кадр в рут ссылку на тот клип, который в данный момент во втором кадре.
если кто-то еще попадает во второй кадр, а ссылка в руте уже есть, то мы просто идем на следующий. вот и все....
вообще, мне кажется многое стоило бы сделать по-другому... но поскольку я не в курсе, чего должно получиться в конечном счете, то ничего не могу посоветовать.... :)
Блин... Я и не сомневался, что это просто, но моих знаний не хватает для этого. Единственное, что мне приходило в голову это перебрать весь массив ифами, но я понимал, что это уродство. Действительно... класс. А будет это такая структура, в которой напряжение между красным и зеленым(как между двумя противоположностями по теории цвета (типа черное-белое, дуальность)) вдруг на мгновение снимается вспышками спектрального свечения, как прототипом Целого(спектр=7цветов=Полнота). И дело не в интеллектуальных пояснениях, конечно, а в том , чтоб добится психического эффекта воздействия, но там, как я уже говорил, звук будет, это важно.
Уфф... Загнул я слегка.
Короче, спасибо Nox Noctis!
ты хоть представь на обозрения то что ты там загнул! Интересно посмотреть на спектральное свечение и т.д.! Слова знакомые только конкретно, наверное, только ты понимаешь и можешь понять! Нам увидеть нужно!
Удачи! :D
Да сделаю, покажу, конечно, хотя это штуки, субъективные очень... :)
Nox Noctis, между прочим, твоя система дает сбои... Но происходит это настолько редко, что можно считать, что не происходит никогда. Однако... происходит! Что ты об этом думаешь? Если ты еще думаешь...
Nox Noctis
01.07.2002, 16:49
да ?
...и какие сбои ? :rolleyes:
вообще вся эта система с гонянием мувика по цепочке одинаковых кадров - затея сама по себе странная...
...я бы, брал рандом, а потом смотрел что он выдал... например если рандом==двум, то идем во второй кадр (ну или еще чего там нужно)... а если рандом не равен двум, то не делаем вообще ни-че-го :) зачем каждый раз клип куда-то гонять ? :)
greyshaman
01.07.2002, 17:51
Да естетественные сбои, ктото уже играет, флаг о том что он играет не выставлен, почему не запустить ещё один.
Nox Noctis
01.07.2002, 17:59
ну да... нужно либо вообще перестать гонять мувы туда-сюда, либо поставить проверку флажка перед gotoAndStop'oм... че-то я перегретый тогда был сильно - сразу не дошло :)
Ага, то что нет смысла гонять мувы до меня уже дошло :) , переделаю. Спасибо.
Вот... обещал. Первый из серии... Второй уже на подходе.
http://www.derhab48.de/rg_1start.html
Выход - важно! - кл. DELETE
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.