Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.10.2014, 21:12
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 1  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Question Постоянная проверка условия

Здравствуйте! Я хочу сделать так, чтобы код регулярно проверял условие (если возможно, постоянно). Я понимаю, что мой способ осуществить это неправилен и я хотел бы узнать о других вариантах. Пока что я использую:
Код AS3:
setInterval(func, 50);
function func () {
if(a>0){
b.x+=5;
}
}
Я понимаю, что setInterval() - это вообще не самый лучший метод, но других путей я не знаю... Подскажите пожалуйста!
P.S. Говорят setInterval заменить на for, но я не знаю как использовать его конкретно для ритмического выполнения функции. Ведь for - это вроде мгновенный цикл, а делать его бесконечным нельзя...

Старый 11.10.2014, 21:38
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 2  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
for нельзя выполнять бесконечно, flash player ошибка выдаст.
А так, не очень понятно что Вам собственно нужно, проверку чего?
А так есть два варианта - enterFrame и taimer.

Старый 11.10.2014, 23:09
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 3  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Wormhole, я правильно понял что ты хочешь сделать игровой цикл? очень на то похоже

Код AS3:
import flash.events.Event;
 
addEventListener(Event.ENTER_FRAME, update);
 
function update(event:Event = null):void{
  if(a>0){
    b.x+=5;
  }
}
Цитата:
Говорят setInterval заменить на for
это где? ты им говорил что тебе для флеша надо?

Старый 12.10.2014, 12:11
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 4  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от nubideus Посмотреть сообщение
Wormhole, я правильно понял что ты хочешь сделать игровой цикл? очень на то похоже

Код AS3:
import flash.events.Event;
 
addEventListener(Event.ENTER_FRAME, update);
 
function update(event:Event = null):void{
  if(a>0){
    b.x+=5;
  }
}
это где? ты им говорил что тебе для флеша надо?
Хмм, действительно.

Насчет флеша - нет, просто почти везде, где пишут про setInterval, говорят, что это очень неудобно и надо заменять на for. А лично мне кажется, что в некоторых задачах (например, движение) этот метод к месту. По крайней мере, когда я проходил JavaScript, setInterval предлагали использовать чаще, вот я и привык

ENTER_FRAME, наверное, наилучший вариант. Спасибо.

Старый 12.10.2014, 16:29
nubideus вне форума Посмотреть профиль Отправить личное сообщение для nubideus Найти все сообщения от nubideus
  № 5  
Ответить с цитированием
nubideus

Регистрация: Jan 2013
Сообщений: 322
Цитата:
когда я проходил JavaScript
(в js есть requestAnimationFrame - аналог enterframe)

в as3 есть Timer - замена setInterval\setTimeout.

Старый 12.10.2014, 17:50
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
в as3 есть Timer - замена setInterval\setTimeout.
Только не замена. Функции setInterval и setTimeout являются обертками над Timer.
__________________
тут я

Старый 14.10.2014, 22:12
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 7  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от nubideus Посмотреть сообщение
(в js есть requestAnimationFrame - аналог enterframe)

в as3 есть Timer - замена setInterval\setTimeout.
Ну вообщем преподавали с помощью setInterval и setTimeout

Добавлено через 33 секунды
Цитата:
Сообщение от КорДум Посмотреть сообщение
Только не замена. Функции setInterval и setTimeout являются обертками над Timer.
Что вы понимаете под обертками?

Старый 14.10.2014, 23:05
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Что вы понимаете под обертками?
Под обертками в данном случае я понимаю две (четыре, если с clear*) функции, которые оставили для дизайнеров, чтобы они мигрировали с as1 на as3 и писали в кадрах так, как они привыкли. По факту эти функции манипулируют все теми же экземплярами Timer.
__________________
тут я

Старый 19.10.2014, 12:25
Wormhole вне форума Посмотреть профиль Отправить личное сообщение для Wormhole Найти все сообщения от Wormhole
  № 9  
Ответить с цитированием
Wormhole
 
Аватар для Wormhole

Регистрация: Jun 2014
Адрес: Санкт-Петербург
Сообщений: 185
Цитата:
Сообщение от КорДум Посмотреть сообщение
Под обертками в данном случае я понимаю две (четыре, если с clear*) функции, которые оставили для дизайнеров, чтобы они мигрировали с as1 на as3 и писали в кадрах так, как они привыкли. По факту эти функции манипулируют все теми же экземплярами Timer.
То есть эти функции всего лишь выполняют методы Timer?

Старый 19.10.2014, 12:43
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 10  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Сообщение от Wormhole Посмотреть сообщение
То есть эти функции всего лишь выполняют методы Timer?
И сохраняют ссылки на сами экземпляры Timer куда-то там. Все тонкости этой нативной реализации мне не известны и, честно говоря, мало интересуют.
__________________
тут я

Создать новую тему Ответ Часовой пояс GMT +4, время: 14:21.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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