Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   когда тормозят анимации (http://www.flasher.ru/forum/showthread.php?t=94576)

etc 16.04.2007 20:20

В хелпе такого примера нет.
Изучаем: http://livedocs.adobe.com/flash/9.0/main/00001899.html

ARTur2 16.04.2007 20:21

Вроде бы разобрался и в свой код:
Код:

public function Navigator() {
          this.onLoad = function() {
              this.createEmptyMovieClip("picture", this.getNextHighestDepth());
              this.createEmptyMovieClip("viewArea", this.getNextHighestDepth()).createEmptyMovieClip("mask", this.getNextHighestDepth());
              this.createEmptyMovieClip("redRect", this.getNextHighestDepth());
              this.createEmptyMovieClip("clickArea", this.getNextHighestDepth());
              this.picture.attachMovie(this.mc, "my_mc", this.getNextHighestDepth());
              this.viewArea.attachMovie(this.mc, "my_mc", this.getNextHighestDepth());

добавил следущее:
Код:

public function Navigator() {
          var my_mc:MovieClip;          this.onLoad = function() {
              this.createEmptyMovieClip("picture", this.getNextHighestDepth());
              this.createEmptyMovieClip("viewArea", this.getNextHighestDepth()).createEmptyMovieClip("mask", this.getNextHighestDepth());
              this.createEmptyMovieClip("redRect", this.getNextHighestDepth());
              this.createEmptyMovieClip("clickArea", this.getNextHighestDepth());
              this.picture.attachMovie(this.mc, "my_mc", this.getNextHighestDepth());
              this.viewArea.attachMovie(this.mc, "my_mc", this.getNextHighestDepth());
                          my_mc.cacheAsBitmap = !my_mc.cacheAsBitmap;              this.viewArea.setMask(this.mask);

но по-моему ничего не изменилось... тормозов меньше не стало... Может я что-то не правильно делаю?

по поводу примера он у меня тут лежит : boot drive\Program Files\Macromedia\Flash 8\Samples and Tutorials\Samples\ActionScript\CacheBitmap.

etc 16.04.2007 20:26

Так надо читать справку!

Зачем объявлять onLoad в конструкторе? Вы же не на AS1 пишете, так ведь? Объявите метод onLoad, как полагается. А в конце добавить:
Код:

this.cacheAsBitmap = true;
Только лучше cacheAsBitmap ставить непосредственно на ролик с картой.

ARTur2 16.04.2007 21:27

БОЛЬШОЕ ВАМ СПАСИБО!!!!!!!!!!!!!!!! всё заработало просто идеально!!!! Вы просто спасли меня!!!!

k0zer 18.04.2007 01:40

Цитата:

Сообщение от __etc
Не вижу связи. Флеш это флеш, видео — это видео.

Способ создания иллюзии движения на экране существует только один. Это быстрая смена кадров со смещением изображения на них, так чтобы человек не замечал дискретности движения. Умные дяди (причем умные во множестве областей) не зря придумали число 30, видимо серьезные исследования проводили. И тут не имеет значение видео это или флеш, хотя флеш в большинстве это интерактивные видеоролики. Как тут можно не видеть связи, для меня загадка.

Цитата:

Сообщение от _bkt
http://flash-ripper.com/archives/000851.php - статья называется "Волшебная Частота, 21 и 31 FPS"

Спасибо за статью, правда автор по-моему сам не догоняет смысл чисел. Дурацкий пример привел, его там в комментах поругали.
Ну и очень порадовала фраза:
"Ответ заключается в том, что значение частоты кадров, FPS, хранится в числе с плавающей запятой формата "16/16" (можно также встретить обозначение "16.16"). В таком числе 16 бит отводится под целую часть, и 16 бит -- под дробную."
Вроде ясно становится что человек не понимает то о чем говорит.
Если ошибаюсь - поправьте меня.

etc 18.04.2007 01:43

k0zer, тебя же не смущает то, что при 30 фпс в 3D игры играть невозможно? Здесь нельзя делать обобщений, не кино смотрим. Уж тем более, никогда про 30 не слышал. Слышал про 21, 24, 25, 31, остальное — нет.
Если религия не позволяет, пользуйся 30, не заставляем. Вести разговоры на тему, что 31 есть правильно я не буду, потому что лень и уже говорили на эту тему.

iNils 18.04.2007 02:03

PAL/SECAM - 25 кадров (Европа)
NTSC - 30 кадров (АМЕРИКА/АЗИЯ)
Но каждый кадр формируется из двух полукадров, поэтому часть общего изображения меняется чаще - 50 и 60 полукадров в секунду. Но речь идет о телевиденье, где частота фиксирована. На мониторах все происходит по другому. Поэтому k0zer не понимает о чем говорит. swf хранит в себе информацию о частоте смене кадров, но хранит не фпс, а время отводимое на каждый кадр, то есть фпс 30 записывается как 1000/30 = 33,3(3). Как видим 33,3(3) дробное число и оно записывается в формате 16.16 и дробная часть получается не точной и и при переводе в фпс со временем накапливается ошибка которая дают скачки в плавной анимации. При частоте фпс 21 и 31, это ошибка минимальна и скачок менее заметен.

k0zer 18.04.2007 02:06

>>k0zer, тебя же не смущает то, что при 30 фпс в 3D игры играть невозможно?
30 - NTSC (по-моему), плюс чересстрочная 60 ))

Не смущает, я сам это знаю и даже догадываюсь почему )). Кстати смотря какая игра, если КС то и на 30 не страшно. А если Ку3 то для комфорта мин для 120 )).

Я религиозные войны вести не люблю и не собираюсь. Я даже верю, что 31 это хорошо и всегда ее ставлю последнее время. Но в той статье что дал _bkt по-моему фигня написана, а не обьяснение.
Если не очень лень, был бы признателен получить ссылку на то, где говорили на эту тему.

etc 18.04.2007 02:06

Ах да, NTSC. Ну не в счет, в общем-то.
А ссылочки в поиске надыбать можно, правда-правда.

k0zer 18.04.2007 02:08

Цитата:

Сообщение от iNils
PAL/SECAM - 25 кадров (Европа)
NTSC - 30 кадров (АМЕРИКА/АЗИЯ)
Но каждый кадр формируется из двух полукадров, поэтому часть общего изображения меняется чаще - 50 и 60 полукадров в секунду. Но речь идет о телевиденье, где частота фиксирована. На мониторах все происходит по другому. Поэтому k0zer не понимает о чем говорит. swf хранит в себе информацию о частоте смене кадров, но хранит не фпс, а время отводимое на каждый кадр, то есть фпс 30 записывается как 1000/30 = 33,3(3). Как видим 33,3(3) дробное число и оно записывается в формате 16.16 и дробная часть получается не точной и и при переводе в фпс со временем накапливается ошибка которая дают скачки в плавной анимации. При частоте фпс 21 и 31, это ошибка минимальна и скачок менее заметен.

1000/25 = 40 ровно


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

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