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

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

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

Регистрация: Dec 2005
Сообщений: 113
По умолчанию Использование нескольких setTimeout

В игре есть сет таймауты в клипах вызывающие в разное время шарики, с ними проблем вроде как нет,
также в руте на различных фреймах расположены уровни игры и опять же setTimeout отвечает чтоб через определенное время игра переходила к следующему кадру. Тут то и появляется проблема - игра начинает скакать по кадрам. Думаю будет более понятно если глянуть исходник. Так как я не супер кодер, то заранее прошу прощения за кривость скрипта. И заранее спасибо за помощь
Вложения
Тип файла: rar game.rar (185.1 Кб, 52 просмотров)

Старый 20.03.2011, 17:06
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Исходник открыть не могу (нужен не старше CS3), но могу предположить, что вы забываете стирать предыдущие таймауты, и они срабатывают, невзирая на желаемую логику переходов:

Код AS1/AS2:
var to1:Number  = setTimeout(someFunc1, 5000);
.
.
//перед выполнением след. логического шага вашего алгоритма
//стираем отложенное выполнение someFunc1, если
//оно не успело произойти по какой-то причине:
clearTimeout(to1);
var to2:Number  = setTimeout(someFunc2, 5000);
.
.
.
clearTimeout(to2);
var to3:Number  = setTimeout(someFunc3, 5000);
Для упрощения можно задать переменную с текущим таймаутом и просто стирать по этой ссылке:
Код AS1/AS2:
var currentTimeout:Number  = setTimeout(someFunc1, 5000);
.
.
clearTimeout(currentTimeout);
__________________
Идите первым!


Последний раз редактировалось mooncar; 20.03.2011 в 17:15.
Старый 20.03.2011, 17:28
tov_diatel вне форума Посмотреть профиль Отправить личное сообщение для tov_diatel Найти все сообщения от tov_diatel
  № 3  
Ответить с цитированием
tov_diatel

Регистрация: Dec 2005
Сообщений: 113
спасибо, сейчас попробую

Старый 20.03.2011, 17:37
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Разве setTimeout не один раз срабатывает? Если так, то в чем разница между setTimeout и setInterval?

Кстати, если не ошибаюсь, setTimeout в FP9 и старше работает.
__________________
hauts.ru

Старый 20.03.2011, 20:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 5  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от Hauts Посмотреть сообщение
Разве setTimeout не один раз срабатывает?
Да, один раз.
Но иногда бывает необходимость отменять отложенное действие.

tov_diatel, посмотрел ваш исходник. Не понял, что у вас управляет вылетанием шариков.

Код должен быть записан в одном месте и в кадре (одного слоя).
А он у вас мало того, что по разным слоям раскидан, так еще и на объектах написан. Разбираться в таком коде трудно, да и не хочется.
Попробуйте переписать код без записи его на объектах и в ключевых кадрах одного отдельного слоя. И вам легче, и другим.
__________________
Идите первым!


Последний раз редактировалось mooncar; 20.03.2011 в 20:52.
Старый 20.03.2011, 17:38
tov_diatel вне форума Посмотреть профиль Отправить личное сообщение для tov_diatel Найти все сообщения от tov_diatel
  № 6  
Ответить с цитированием
tov_diatel

Регистрация: Dec 2005
Сообщений: 113
так что то вообще не работает, может я уже чего непонимаю
Вложения
Тип файла: rar gamecs3.rar (186.4 Кб, 25 просмотров)

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

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

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


 


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


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