Skocz do zawartości

Pomoc: 360 View we Flashu


Rekomendowane odpowiedzi

Napisano

Witam,

 

Mam do Was takie pytanie. W jaki sposob mozna zrobic we flashu taka 360 stopniowa prezentacje prjektu. Cos takiego jak tutaj:

http://www.wdc.com/en/flash/index.asp?family=wdfMyBook_Office_1B

 

Chcialem dodac, ze nie chcialbym uzywac jakichs specjalnych pluginow, czy programow do tego. Chcialem skorzystac z wyrenderowanej sekwencji obrazkow i polaczyc to z AS. Czy macie moze jakies linki do ciekawych tutoriali?

 

Z gory dziekuje za wszelkie informacje.

 

Pozdrawiam,

 

xaoo

  • Odpowiedzi 5
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano (edytowane)

1. Robisz jakis Movie Clip, nazywasz go dowolnie np main_mc.

2. W nim robisz nastepny, ktory nazywasz np: klatki_mc (pamietaj ze nazwa

ta musi byc w Instance name)

3. W tak nowo utworzonym pustym klipie (klatki_mc) w pierwszej klatce do

kodu dodajesz: stop();

4. Dodajesz nowa warstwe i importujesz do niej klatki

tego co ma sie obracac

 

warstwa gdzie jest kod stop(); ma byc rozciagnieta na cala dlugosc filmu

 

5. Wracasz o poziom wyzej do Movie Clip'a w naszym przypadku main_mc, nad warstwa gdzie masz sekwencje klatek do obrotu tworzysz nowa i wstawiasz kwadrat z plpha = 0% jako obszar ktory bedzie reagowal na kliknieciea jednoczesnie bedzie przezroczysty i konwertujesz go do MovieClip'a i w Instance name nadajesz mu np nazwe: "pole"

 

6. Dodajesz nowa warstwe a w niej kod:

 

[color=Blue]stop[/color]();
[color=Blue]var[/color] mouseClick:[color=Blue]Boolean[/color];
[color=Blue]var[/color] xPos, xPosNew, i :[color=Blue]int[/color];

i = 20;

pole.[color=Blue]addEventListener[/color]([color=Blue]MouseEvent.MOUSE_DOWN[/color], MouseDWN);

[color=Blue]function[/color] MouseDWN([color=Blue]event[/color]:[color=Blue]MouseEvent[/color]):[color=Blue]void[/color]
       {
       [color=Blue]this.[/color][color=Blue]addEventListener[/color]([color=Blue]Event.ENTER_FRAME[/color], obrot);
       mouseClick = [color=Blue]true[/color]; 
       xPos = [color=Blue]stage[/color].[color=Blue]mouseX[/color]
       pole.[color=Blue]removeEventListener[/color]([color=Blue]MouseEvent.MOUSE_DOWN[/color], MouseDWN);
       [color=Blue]stage.addEventListener[/color]([color=Blue]MouseEvent.MOUSE_UP[/color], MouseUP);
       }

[color=Blue]function[/color] MouseUP([color=Blue]event[/color]:[color=Blue]MouseEvent[/color]):[color=Blue]void [/color]
       {
       mouseClick = [color=Blue]false[/color];      
       [color=Blue]this.[/color][color=Blue]removeEventListener[/color]([color=Blue]Event.ENTER_FRAME[/color], obrot);
       pole.[color=Blue]addEventListener[/color]([color=Blue]MouseEvent.MOUSE_DOWN[/color], MouseDWN);
[color=Blue]        stage.removeEventListener[/color]([color=Blue]MouseEvent.MOUSE_UP[/color], MouseUP);
       }



[color=Blue]function[/color] obrot([color=Blue]event[/color]:[color=Blue]Event[/color]) {
   [color=Blue]if[/color] (mouseClick == [color=Blue]true[/color])

   {
       xPosNew = [color=Blue]stage[/color].[color=Blue]mouseX[/color]

       [color=Blue]if[/color] (xPosNew > (xPos+i))
       {
           [color=Blue]if[/color] (klatki_mc.[color=Blue]currentFrame[/color] == klatki_mc.[color=Blue]totalFrames[/color])
           {
               klatki_mc.[color=Blue]gotoAndStop[/color](1);
               xPos = xPosNew;
           }
           [color=Blue]else[/color]
           {
           klatki_mc.[color=Blue]nextFrame[/color]();
           xPos = xPosNew;
           }
       }

      [color=Blue] if[/color] (xPosNew         {
           [color=Blue]if[/color] (klatki_mc.[color=Blue]currentFrame[/color] == 1)
           {
               klatki_mc.[color=Blue]gotoAndStop[/color](klatki_mc.[color=Blue]totalFrames[/color]);
               xPos = xPosNew;
           }
          [color=Blue] else[/color]
           {
           klatki_mc.[color=Blue]prevFrame[/color]();
           xPos = xPosNew;
           }
       }
   }
}

kod napisalem sam, u mnie dziala, jest to AS3, jest tu jeden parametr, zmienna "i" za pomoca ktorej mozesz regulowac co ile pikseli przesuniecia kursora zmini sie klatka

 

skrypt po osiagnieciu ostatniej klatki automatycznie przewija Movie Clip "klatki_mc" do pierwszej i vice versa, czyli jest zachowana plynnosc ruchu

 

edit:

w zaleznosci jaki chcesz osiagnac efekt EventListener'y mozesz przypisac do sceny, lub konkretnego pola, MovieClip'u itp ...tutaj poprawilem troche kod, kliknac/aktywowac obrot bedziesz mogl tylko na wyznaczonym przez siebie polu, ale podniesc/zwolnic klawisz myszy juz w dowolnym miejscu sceny

 

w razie pytan pisz

 

pozdrawiam

Edytowane przez Johny
  • Like 1
Napisano

Witam,

 

Na wstepie wielkie dzieki za taki kawalek kodu. Kurcze jedyny problem to taki,ze ja potrzebuje AS 2.0, a nie 3.0. Niestety posiadam Flasha 8 i mam problemy z klasa MouseEvent oraz Event :/ Da sie cos na to poradzic?

 

Z gory dziek za informacje.

 

Pozdrawiam,

 

xaoo

 

P.S.

 

Rep dla Ciebie juz idzie :)

Napisano

Witam,

 

Chyba najprosciej bedzie jak zdobede Flasha CS3 :) TYlko mam pytanie, bo wiekszosc projektu robie we flashu 8 i uzywam loadera do importowania plikow zewnetrznych do sceny. Czy to nie bedzie problem jesli jeden plik bedzie zrobiony w innej wersji flasha?

 

Pozdrawiam,

 

xaoo

Napisano

Witam po raz 3 :)

 

No i niestety kiszka jest. Jak importuje sekwencje do starego flasha to obiekt sie obraca sam i nie ma nad nim zadnej kontroli :/ Wychodzi na to,ze bedzie trzeba przekonwertowac pozostale pliki i miec nadzieje, ze to wszystko bedzie dzialalo :/

 

Pozdrawiam,

 

xaoo

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności