|
|
|||||
Регистрация: Sep 2007
Сообщений: 64
|
Реализация симулятора CRT дисплея
Доброго времени суток всем!
Задача следующая - нужно реализовать визуализатор симулирующий эл. пикселы дисплея 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, время: 20:16. |
|
« Предыдущая тема | Следующая тема » |
|
|