PDA

Просмотр полной версии : Псевдо 3D во флеш


Marutya
01.08.2008, 14:40
Делаю флэш-презентацию. Задумка следующая - презентуемый копрус компьютера нужно показать со всех сторон. Для этого мы поворачивали блок на 20 градусов и фоткали. Далее я создала ползунок, который можно передвигать влево-вправо и мувик с "крутящимся" корпусом. И никак, блин, не могу связать движение ползунка по полоске влево- вправо с повотом корпуса (т.е. со сменой фоток)
Чтобы было понятно о чем я - во вложении swf -ка
Помогите плз

crazyone
01.08.2008, 15:05
Ваш ползунок умеет определять свое положение?
Тогда вам нужно при изменении положения ползунка посчитать соответствие между этим положением(пусть это будет переменная pos) и нужным кадром вашего мувика(frame). Зная общее число кадров вашего мувика(_totalframes) и максимальное положение ползунка(maxpos) это легко сделать:
frame=seekBar.pos*mc._totalframes/seekBar.maxpos;
mc.gotoAndStop(frame);

Кстати, по поводу анимации корпуса - гораздо лучше будет подвинуть ваши изображения так, чтобы корпус крутился вокруг своего центра.

Marutya
01.08.2008, 16:14
Ваш ползунок умеет определять свое положение?
Тогда вам нужно при изменении положения ползунка посчитать соответствие между этим положением(пусть это будет переменная pos) и нужным кадром вашего мувика(frame). Зная общее число кадров вашего мувика(_totalframes) и максимальное положение ползунка(maxpos) это легко сделать:
frame=seekBar.pos*mc._totalframes/seekBar.maxpos;
mc.gotoAndStop(frame);

Кстати, по поводу анимации корпуса - гораздо лучше будет подвинуть ваши изображения так, чтобы корпус крутился вокруг своего центра.

ползунок не умеет определять положение..
по идее, у меня 4 кадра от центра вправо и 4 кадра от центра влево + один ценральный, а длина полоски 252 пикселя, соответвенно каджый следующий отрезок в 28 пикселей должен сменять картинку.

alrusdi
01.08.2008, 16:36
У меня это как-то так было сделано

napr.onMouseMove = function () {
koeff=3.9
gotoAndStop(int(napr.polzunok._y/koeff))
}

где koeff - коэффициент переводящий положение ползунка в номер кадра на который нужно перейти.
Выложите исходник)

crazyone
01.08.2008, 18:34
ползунок не умеет определять положение..
Так научите.

Мы же не знаем, как у вас ползунок устроен.

Alex_beginner
03.08.2008, 12:56
Здравствуйте Marutya!

Хех! :) Тема становиться актуальной.

Вот недавно "обсасывали" указанную Вами тематику:

http://www.flasher.ru/forum/showthread.php?t=114336

Думаю, там изложены исчерпывающие ответы и примеры.

Double
03.08.2008, 22:38
эх, блин... а когда-то тут были примеры и в их числе мой с крутящимся колесом (не вокруг своей оси, разумеется, а именно псевдо 3д). пример был написан на четвёрке )))) и средний балл у примера был что-то в районе тройки ) кто бы мог подумать, что эта ерунда будет актуальна столько лет спустя )

Marutya
04.08.2008, 12:47
Здравствуйте Marutya!

Хех! :) Тема становиться актуальной.

Вот недавно "обсасывали" указанную Вами тематику:

http://www.flasher.ru/forum/showthread.php?t=114336

Думаю, там изложены исчерпывающие ответы и примеры.

Все, решила задачу. В мувике каждую фотку-поворот называю а0, a1, a2, и т.д.
9 картинок = 9 кадров

далее создаю полосу прокрутки она у меня 252px.
что бы узнать отношение расположение по х кнопки прокрутки к кадру мувика.
252/9= 28

соответственно при пересечении каждого 28го рх кнопкой прокрутки мы должны попадать на определенный кадр мувика (с а0, по а5)

onClipEvent(enterFrame){
i=int(this._x/42);//приставка int округляет дробное число до целого
_root.name_block.gotoAndStop("a"+i);
}

alrusdi
04.08.2008, 14:52
Да, вот только зачем префиксы?
Можно и просто

_root.name_block.gotoAndStop(i);

И фотки тогда не нужно "называть". Если бы их не 9, а сто было бы тоже что-ли вручную нумеровала?

Alex_beginner
04.08.2008, 16:02
Marutya! В выбранном Вами алгоритме есть неприятный момент - все изображения надо импортировать в отдельные кадры, а это не всегда приятно, в особенности если их чуть более сотни :). Лучше кадры-изображения загружать в лоадерами.