![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
Доброго времени суток всем!
Задача следующая - нужно реализовать визуализатор симулирующий эл. пикселы дисплея CRT монитора (ну или телека), луч проходит по люминофору и пикселы начинают светится. Есть поле 20х20 пикселов, а в роли пикселов выступают мувиклипы-ректанглы _height:20px _width:20px. Итого 400 квадратиков, и все они изначально имеют нулевую альфу. Рядом есть небольшая контрольная панелька, где сть FPS этого экранчика, пуск и стоп. Запускаем это дело и пикселы должны начинать по очереди мгновенном загораться(_alpha сразу на 100%) и потухать (уже не мгновенно, с небольшой задержкой). В общей сложности это выглядит как сначала верхний ряд слева направо, затемвторой ряд справа налево и т.д. как и реально ходит пучок по люминофору. Так вот возник вопрос, как это можно реализовать, ведь getTimer() возвращает значение в ms, т.е. минимальный интервал 1ms, а для реализации скорости в 25fps (виртуальных фпс'ов), нужно что бы все 400 пикселов прогнались за 1/25 сек. или интервал между каждым пикселом должен быть 1/25/400=0,0001сек, т.е. 1/10 от минимального интервала таймера. Помогите с креативом, заранее спасибо! |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 306
|
import mx.transitions.Tween;
tweening = function(img1_mc:MovieClip){
trace(img1_mc);
var myTween:Tween = new Tween(img1_mc, "_alpha", mx.transitions.easing.Strong.easeOut,0, 100, 100, false);
myTween.onMotionFinished = function() {
var myTween2:Tween = new Tween(img1_mc, "_alpha", mx.transitions.easing.Strong.easeOut,100, 0, 200, false);
};
}
var w:Number = 20;
var h:Number = 20;
_global.i = 0;
var bgColor:Number = 0x00CC00;
this.createEmptyMovieClip("rect", this.getNextHighestDepth());
create = function(){
if (_global.i== 9) clearInterval(interval);
name_ = "im" + _global.i;
rect.createEmptyMovieClip(name_, rect.getNextHighestDepth());
rect[name_].beginFill(bgColor);
rect[name_].lineTo(w, 0);
rect[name_].lineTo(w, h);
rect[name_].lineTo(0, h);
rect[name_].lineTo(0, 0);
rect[name_]._y = 10;
rect[name_]._x = _global.i*30;
tweening(rect[name_]);
_global.i++;
trace(_global.i);
}
var interval = setInterval(create,1000);
![]() |
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
Огромный сенк!
Идею понял |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Это все гораздо проще делается.
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
Kikasso, вот как раз то что нужно. Спасибо.
Но осталась проблема виртуальных фпс'ов... Установил 120фпс в свойствах мувика, визуально где то 2,5-3 виртуальных кадра в секунду успевает проскочить, а на телике 25, ладно будем думать. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
На телике 25 фпс, и что, вы видите как лучик по экрану бегает?
|
|
|||||
|
Регистрация: Sep 2007
Сообщений: 64
|
Вот в том то вся история, что можно будет менять скорость, или через var текстинпута или через numericStepper, и будет демонстрация этого эффекта, т.е. сначала вроде как изображение статическое, и не заметно как луч бегает, а потом уменьшая фпс станет видно.
Еще там нужно из этой матрицы что бы буковка была какая нибудь другим цветом Ну это я уже попробую сам...Блин тоже дали задание мне... |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:37. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|