PDA

Просмотр полной версии : Смена значения переменной при обратном переходе с кадра на кадр


drobinkin
05.10.2007, 00:49
При прямом переходе значение текстовой переменной нормально изменяется, т.е. я в нужных кадрах присваиваю ей определенное значение.
При ОБРАТНОМ переходе (по _prevFrame) - остается значение от предыдущего кадра до тех пор, пока не дойдешь до кадра, где НЕПОСРЕДСТВЕННО присваиваем очередное значение.
Чтобы было понятнее выкладываю исходник 17841
Обратите внимание, что при обратном переходе, например, с Категории 2 на Категорию 1 картинки уже идут из первой категории, а заголовок еще со второй.

Вопрос: можно ли как-то это дело обойти?
Одно из решений в том же исходнике, во второй сцене. Копируем кадры с присвоением значения в конец каждой области действия переменной.
Но это еще нормально, если кадров и переходов не много.
А если кадров очень много, и по ходу еще надо между ними что-то вставлять-добавлять? Как быть?
Сразу начинается жуткая запарка, даже если надо вставить один кадр.
Подскажите, будь ласка :)

Bорон
05.10.2007, 01:16
это нормальная и логичная ситуация.
не надо это никак обходить.
надо учиться пользоватся клипами а не пихать все в один таймлайн.
намек понял?
или надо подробно и с примером?

drobinkin
05.10.2007, 01:44
Ворон, то что ситуация "нормальная и логичная" — я прекрасно понимаю.
И про использование клипов тоже знаю и в следующей версии планирую перейти на них. Просто щас проект уже так разросся, что переделывать его при помощи клипов и т.д. займет много времени, а мне его вот-вот показывать надо. Начинался он с маленького и мне его проще было делать линейно, на одном таймлайне. Но в процессе работы добавилось дофига всего. Поэтому пытаюсь закончить как есть.
Мой вопрос не праздный, а для того, чтобы хот как-то облегчить себе выполнение задачи. Ну и в назидание потомкам, может быть :)

Но если ты серьезно насчет примера — можно небольшой, необязательно прямо подробно. Или ткни носом — где рыть.

Bорон
05.10.2007, 01:52
у вас категории обладают произвольными названиями или отличаются только индексом?

drobinkin
05.10.2007, 01:57
Вообще-то произвольные.
Подозреваю, что в начале можно инциализировать какй-нить строковый массив?

Bорон
05.10.2007, 02:35
Ага.
Правильно подозреваешь.
Начало примера набросал, но заканчивать буду утром.
Так как иду спать :)

drobinkin
05.10.2007, 02:37
Ок. Сенкс. Ал би вэйтинг.
И спокойной ночи :) Я ищо посижу

†‡Paladin‡†
05.10.2007, 02:50
Хм. Думается можно действительно организовать массив всех значений одной переменной и сделать чтото вроде этого.

varArr:Array = [1, 2, 5, 19, 56];
arrIndex:Number = 0;
function moveForward(var:Number):Void {
myVar = varArr[arrIndex++];
gotoAndPlay(var);
}
И аналогично назад. И потом заместо готу юзать эту функцию.

drobinkin
05.10.2007, 02:58
Я ваще использовал на кнопке

on(press){
prevFrame();
stop();
}

Туповато, конечно, не по-модному :)

Паладин, а ты имеешь ввиду, что потом что-то вроде


my_Button.onPress.moveForward(x) где х=1, 2, 5, 19, 56 ?

†‡Paladin‡†
05.10.2007, 03:04
Нет var это номер след кадра в котором нужно менять переменную. Т.е. оно перейдет на нужный кадр и подставит в твою переменную следующее значение из массива по порядку. Можешь себе понаписать разновидностей ф-ции на все случаи жизни. Вариант nextFrame/prevFrame заместо готу.

drobinkin
05.10.2007, 03:14
Если я правильно понял приведенный кусок кода, мне нужно ЗАРАНЕЕ прописать в массиве все кадры переходов? Паладин, глянь мой исходник. Там упрощенно три отрезка одинаковой длины. В реале же их гораздо больше и все разной длины — от 2 до 8-12 фреймов. И мне еще нужно будет между ними вставлять такие же отрезки. Это же гикнуться можно. Хотелось бы, чтобы именно в момент обратного перехода присвоение УЖЕ происходило, автоматом.

Bорон
05.10.2007, 15:21
Если у тебя статичный набор галерей и ты не смущаешься их грузить все сразу (логиянее было бы по мере надобности), то вот обещаный примерчик:

drobinkin
05.10.2007, 19:14
Ворон, спасибо за исходник, сижу ковыряюсь. Конечно, по началу косеешь от обилия всевозможных индексов. :) Но ничего, прорвемся.

Единственно, не въеду пока - у тебя после инициализации массива
идет ОПИСАНИЕ функций create_gal() и remove_gal(), потом ВЫЗОВ create_gal(); и init_gall(); подряд, а потом ОПИСАНИЕ init_gall(); - я прально понял? Смущает порядок - сначала ВЫЗОВ а потом ОПИСАНИЕ. Или это пофигу?

зы Я так понимаю, что под это дело можно прикручивать сколько мне надо массивов - с описаниями, ссылками и т.д и гонять их себе "зат-пирет" ? :)

ззы Спасибо еще раз. Ты хоть выспался? Я всю ночь бдил :)

Bорон
11.10.2007, 13:14
Или это пофигу?
Это пофигу.
Главное что бы ф-я была в области видимости вызова.
компилятор при сборке ролика совершает несколько "проходов" по коду.

зы Я так понимаю, что под это дело можно прикручивать сколько мне надо массивов

сколько тебе будет нужно, чтолько и прикручивай.

"зат-пирет"

Я не знаю что такое "зат-пирет"... Что это?

P.S. всегда пожалуста.