Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ENTER_FRAME (http://www.flasher.ru/forum/showthread.php?t=175219)

Wolf 12.02.2012 20:22

ENTER_FRAME
 
слышал много о ENTER_FRAME но не могу понять что это такое. программирую в фд с использованиям спрайтов. нужен ли мне этот ENTER_FRAME вобще?

TanaTiX 12.02.2012 20:33

Цитата:

слышал много о ENTER_FRAME но не могу понять что это такое
это событие, которое отсылается для InteractiveObject-ов столько раз, сколько fps у вашего приложения в секунду, попросту каждый кадр.
Цитата:

нужен ли мне этот ENTER_FRAME вобще?
вам решать

Wolf 12.02.2012 20:47

тоесть оно вызывается ровно столько раз, сколько сможет позволить мой компьютер? насколько я понимаю это удобно для риал тайм игр

Добавлено через 2 минуты
а как ограничить его исплнения например 25 раз в секунду?

elder_Nosferatu 12.02.2012 20:55

В настройках проекта устанавливаете значение

Добавлено через 1 минуту
Project/Properties
Вкладка Output
Framerate [25] fps

HardCoder 12.02.2012 21:19

Цитата:

Сообщение от Wolf (Сообщение 1062366)
тоесть оно вызывается ровно столько раз, сколько сможет позволить мой компьютер?

Нет, оно вызывается ровно с такой частотой, какая указана в свойстве frameRate класса Stage (или в настройках проекта). Если компьютер не может позволить такую частоту - оно вызывается реже.

MikroAcse 12.02.2012 21:24

Итак, если в настройках framerate = 30 (например):
1 секунда/framerate = 1000/30 = 33.3 миллисекунды

Теперь мы знаем, что ENTER_FRAME вызывается каждые 30.03 миллисекунды.

Я думаю что так.

Wolf 12.02.2012 21:30

а как примерно рассчитать сколько сможет выдержать компьютер? и кокое лучше значение выбрать для игры аркада?

КорДум 12.02.2012 21:32

Цитата:

1 секунда/framerate = 60/30 = 2 миллисекунды
В секунде 1000 миллисекунд [x]
В браузерах выше 60 fps не получить.

Цитата:

и кокое лучше значение выбрать для игры аркада?
Я предпочитаю 25.

TanaTiX 12.02.2012 21:33

MikroAcse, а одна секунда 60 чего содержит? При 30 fps один кадр составляет 33мс (с третью если придираться).

Wolf 12.02.2012 21:35

Всем большое спасибо за помощь)

MikroAcse 12.02.2012 21:36

Цитата:

Сообщение от Wolf (Сообщение 1062388)
а как примерно рассчитать сколько сможет выдержать компьютер?

Никак, ENTER_FRAME не нагружает компьютер.
Сама игра нагружает его.
Например:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME,function(){
trace('новый кадр')
}

Не нагружает компьтер.

А вот:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME,function(){
//много строк кода со всякими изменениями...
}

Нагружает.

Цитата:

Сообщение от Wolf (Сообщение 1062388)
и кокое лучше значение выбрать для игры аркада?

Ну, это уж сами выбирайте.
Советую 30-40.

ENTER_FRAME переводится как ВХОД_В_КАДР

---------------------------
TanaTiX, забыл, извиняюсь.
Перепутал с секундами.

HardCoder 12.02.2012 21:55

Цитата:

Сообщение от MikroAcse (Сообщение 1062393)
Советую 30-40.

А чем обусловлена такая цифра? Человеческий глаз больше 24 не воспринимает. На мой взгляд - 25 оптимальная цифра для производительности и удобности расчетов(1000/25 = 40; 1000/30 = 33.3333333).

MikroAcse 12.02.2012 21:59

Цитата:

Сообщение от HardCoder (Сообщение 1062397)
А чем обусловлена такая цифра? Человеческий глаз больше 24 не воспринимает. На мой взгляд - 25 оптимальная цифра для производительности и удобности расчетов(1000/25 = 40; 1000/30 = 33.3333333).

Игра выглядит плавнее и быстрее.
Пользуюсь - 40 fps.

1000/40=25

TanaTiX 12.02.2012 22:50

Цитата:

Сообщение от MikroAcse (Сообщение 1062393)
Никак, ENTER_FRAME не нагружает компьютер.
Сама игра нагружает его.
Например:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME,function(){
trace('новый кадр')
}

Не нагружает компьтер.

А вот:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME,function(){
//много строк кода со всякими изменениями...
}

Нагружает.


Ну, это уж сами выбирайте.
Советую 30-40.

ENTER_FRAME переводится как ВХОД_В_КАДР

---------------------------
TanaTiX, забыл, извиняюсь.
Перепутал с секундами.

Уже устал повторять - не пользуйтесь анонимными функциями, они нагружают компьютер.
Может не с секундами, а с минутами или часами перепутал?
И кстати, советую больше 30 не ставить.


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

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