Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Псевдо 3D во флеш (http://www.flasher.ru/forum/showthread.php?t=114545)

Marutya 01.08.2008 14:40

Псевдо 3D во флеш
 
Вложений: 1
Делаю флэш-презентацию. Задумка следующая - презентуемый копрус компьютера нужно показать со всех сторон. Для этого мы поворачивали блок на 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

Цитата:

Сообщение от crazyone (Сообщение 755754)
Ваш ползунок умеет определять свое положение?
Тогда вам нужно при изменении положения ползунка посчитать соответствие между этим положением(пусть это будет переменная 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

Цитата:

Сообщение от Alex_beginner (Сообщение 756035)
Здравствуйте 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! В выбранном Вами алгоритме есть неприятный момент - все изображения надо импортировать в отдельные кадры, а это не всегда приятно, в особенности если их чуть более сотни :). Лучше кадры-изображения загружать в лоадерами.


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

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