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

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

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

Регистрация: Dec 2013
Сообщений: 13
Question Привязка к часам(времени)

Как мне привязать движение во времени?
Вот мне нужно, чтобы картинка сдвигалась с определенной скоростью - ну например 1 пиксель в секунду
Как мне это правильно сделать?
Код AS3:
import flash.display.Bitmap; 
import flash.display.BitmapData;
import flash.events.Event;
import flash.display.Loader;
 
const IMAGE_URL:String = "img/001.jpg";
 
var ldr:Loader = new Loader();
ldr.contentLoaderInfo.addEventListener(Event.COMPLETE, ldr_complete);
ldr.load(new URLRequest(IMAGE_URL));
 
var myBitmap:Bitmap = new Bitmap;
 
function ldr_complete(event:Event):void {
 
	myBitmap = new Bitmap( (ldr.content as Bitmap).bitmapData );
	addChild(myBitmap); 
	addEventListener(Event.ENTER_FRAME, scrollBitmap); 
}
 
function scrollBitmap(event:Event):void { 
	myBitmap.bitmapData.scroll(-2,0);
}

Старый 14.03.2014, 21:21
Carbon вне форума Посмотреть профиль Отправить личное сообщение для Carbon Найти все сообщения от Carbon
  № 2  
Ответить с цитированием
Carbon

Регистрация: Mar 2014
Адрес: неадекват
Сообщений: 10
мб без битмапа?

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

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Цитата:
мб без битмапа?
WTF?! O_o

Для привязки ко времени обычно запоминают время предыдущего кадра, находят разницу (в миллисекундах) с текущим кадром и по простой формуле механики находят новое положение.
Код AS3:
import flash.utils.getTimer;
И потом использовать эту функцию как
Код AS3:
var previousFrameTime:int; // Где-нибудь инициализируется
// новый кадр
{
    var passedTime:int = getTimer() - previousFrameTime;
    // Делаем с этим временем что нужно
    ...
    // Конец кадра
    previousFrameTime = getTimer();
}
Функция возвращает количество миллисекунд, прошедшее с начала ролика. Соответственно если в конце текущего кадра запоминать это значение в переменной, а в начале следующего вычитать эту переменную из getTimer(), получим прошедшее с последнего кадра время.
Разделить на 1000, умножить на скорость - получим перемещение в пикселях на текущий кадр. Прибавить перемещение нужному объекту, сохранить текущее значение getTimer() в переменную и ждать следующий кадр. И так до посинения.


Последний раз редактировалось KumoKairo; 16.03.2014 в 00:05.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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