-
1. Data: 2010-09-01 12:51:03
Temat: Skokowość powolnych animacji Flash
Od: Marek <b...@e...com>
Witam,
Przeszukuję od 2 dni roziązania problemu trzęsących się animacji ruchu
robionych we Flash'u. Bezskutecznie - tak jakby ten problem w ogóle nie
istniał (shaking animation). Czy ktoś z Was przerabiał podobny problem? Czy
jest gdzieś we AS3 opcja, która wyeliminowałaby to zjawisko? A może ktoś z
Was mógłby poratować mnie jakimś linkiem?
Doprecyzuję:
1. Ruch (po X i po Y) realizowany jest w AS w zdarzeniu FRAME_ENTER.
2. Animacja ma być bardzo powolna.
3. Wszystkie obiekty tak animowane nie wykonują płynnego ruchu lecz
przemieszczają się skokowo. Po przyspieszeniu animacji (lecz zachowaniu
fps=25) zjawisko znika z oczywistych względów. Wygląda to tak jakby obiekty
mogły zajmować pozycje na poziomie całych pikseli lub nawet więcej niż 1
piksela.
Dodam też, że powolny ruch zrealizowany bez użycia AS też tak się
zachowuje.
-
2. Data: 2010-09-01 23:07:25
Temat: Re: Skokowość powolnych animacji Flash
Od: kamil d <k...@t...pl>
Marek pisze:
> (lecz zachowaniu
> fps=25)
Tak na logikę to trzeba zwiększyć ilość fps.
--
kamil d
-
3. Data: 2010-09-03 17:06:39
Temat: Re: Skokowość powolnych animacji Flash
Od: Marek <b...@e...com>
Dnia Thu, 02 Sep 2010 01:07:25 +0200, kamil d napisał(a):
> Marek pisze:
>> (lecz zachowaniu
>> fps=25)
>
> Tak na logikę to trzeba zwiększyć ilość fps.
To nic nie da. Zrób sobie prosty eksperyment. Utwórz nową animację np.
500x500px. Narysuj kwadrat np. 80px. w lewym górnym rogu. Ustaw fps na 25.
Zrób przejście tego kwadratu tak aby w klatce 500 znalazł się w skrajnej
prawej pozycji i schodził pod kątem ok. 20 stopni. To ważne: przy 45
stopniach zjawisko nie wystąpi.
Potem drugi wariant: ustaw FPS na 50 a animację rozszerz na 1000 klatek aby
tempo poruszania sie kwadratu było takie samo.
W obu tych przypadkach obiekt przesuwa się skokowo. Wygląda nawet tak jakby
zmieniał swój rozmiar na poziomie 1 px.
-
4. Data: 2010-09-03 21:35:47
Temat: Re: Skokowość powolnych animacji Flash
Od: Artur Muszyński <a...@u...wytnijto.com.pl>
W dniu 2010-09-03 19:06, Marek pisze:
> W obu tych przypadkach obiekt przesuwa się skokowo. Wygląda nawet tak jakby
> zmieniał swój rozmiar na poziomie 1 px.
To nie tylko we Flashu tak jest. IMHO to jest spowodowane brakiem
synchronizacji z odświeżaniem ekranu i niedokładnością timera z powodu
wielozadaniowości. To są problemy w zasadzie nierozwiązywalne w Windows.
Na porządnych komputerach (dawno temu) synchronizowało się grafikę z
przerwaniem pionowym i stosowało sprzętowe podwójne buforowanie, to było
idealnie płynnie.
artur
-
5. Data: 2010-09-04 06:40:14
Temat: Re: Skokowość powolnych animacji Flash
Od: Sergiusz Rozanski <w...@s...com>
Dnia 03.09.2010 Artur Muszyński <a...@u...wytnijto.com.pl> napisał/a:
> W dniu 2010-09-03 19:06, Marek pisze:
>> W obu tych przypadkach obiekt przesuwa się skokowo. Wygląda nawet tak jakby
>> zmieniał swój rozmiar na poziomie 1 px.
>
> To nie tylko we Flashu tak jest. IMHO to jest spowodowane brakiem
> synchronizacji z odświeżaniem ekranu i niedokładnością timera z powodu
> wielozadaniowości. To są problemy w zasadzie nierozwiązywalne w Windows.
Może we flashu się nie da - nie znam flasha, ale w Windows masz oczywiście
sync z ramką obrazu, karta graficzna informuje system operacyjny o tym i
aplikacja może tej informacji użyć.
> Na porządnych komputerach (dawno temu) synchronizowało się grafikę z
> przerwaniem pionowym i stosowało sprzętowe podwójne buforowanie, to było
> idealnie płynnie.
A teraz karta graficzna sama synchronicznie buduje obraz, wystarczy jej
załadować scene i tekstury :) i zrobi to synchronicznie do ramki, to tylko
flash jest taki ułomny.
--
"A cóż to za sens kupować samochód, żeby jeździć po asfalcie?
Tam, gdzie jest asfalt, nie ma nic ciekawego, a gdzie jest
coś ciekawego, tam nie ma asfaltu".
Strugaccy - Poniedziałek zaczyna się w sobotę.
-
6. Data: 2010-09-04 17:11:12
Temat: Re: Skokowość powolnych animacji Flash
Od: Marek <b...@e...com>
Dnia Fri, 03 Sep 2010 23:35:47 +0200, Artur Muszyński napisał(a):
> To nie tylko we Flashu tak jest. IMHO to jest spowodowane brakiem
> synchronizacji z odświeżaniem ekranu i niedokładnością timera z powodu
> wielozadaniowości. To są problemy w zasadzie nierozwiązywalne w Windows.
> Na porządnych komputerach (dawno temu) synchronizowało się grafikę z
> przerwaniem pionowym i stosowało sprzętowe podwójne buforowanie, to było
> idealnie płynnie.
Tak, pamiętam. Kiedyś gdy bawiłem się w oprogramowanie na "starych"
komputerach, to obraz generowałem w przerwaniach ramki. Nawet dało
przełączać się paletę kolorów w poziomych przerwaniach aby zaszokować
widzów większą ilością kolorów niż 256 :-)
Jednakże to dygresja. Wracając do wątku: mam pewne wątpliwości co do Twojej
interpretacji zjawiska. Gdy obiekt schodzi pod kątem 45 stopni to efekt nie
występuje. Przy problemach z synchronizacją różnych FPS zawsze
występowałaby nierównomierność poruszania się obiektu. Tymczasem w tym
przypadku tak nie jest. Po drugie (może mi się wydaje - trudno to zmierzyć)
- poruszający się obiekt tak jakby zmieniał swoje wymiary (ok 1px) w
różnych klatkach. Wygląda mi to na kłopoty z samym playerem.
-
7. Data: 2010-09-07 21:06:33
Temat: Re: Skokowość powolnych animacji Flash
Od: Artur Muszyński <a...@u...wytnijto.com.pl>
W dniu 2010-09-04 08:40, Sergiusz Rozanski pisze:
> Może we flashu się nie da - nie znam flasha, ale w Windows masz oczywiście
> sync z ramką obrazu, karta graficzna informuje system operacyjny o tym i
> aplikacja może tej informacji użyć.
Może użyć, ale ja od lat staram się uzyskać płynny ticker+video i słabo
to wychodzi.
> A teraz karta graficzna sama synchronicznie buduje obraz, wystarczy jej
> załadować scene i tekstury :) i zrobi to synchronicznie do ramki, to tylko
> flash jest taki ułomny.
AFAIK Flash działa na timerze i ma w nosie synchronizację i
najprawdopodobniej wszystko inne, co chodzi w przeglądarkach robi tak samo.
artur