Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Бегущая строка. DisplacementMapFilter? BitMap? (http://www.flasher.ru/forum/showthread.php?t=84425)

wonderwhy 31.08.2006 01:05

Бегущая строка. DisplacementMapFilter? BitMap?
 
:confused: Мне нужно сделать эффект бегущей строки как в новостях в низу экрана. Не анимацию а эффект так как текст подразумевается динамическим. Я бы хотел, услышат мнения о том, как это можно было бы сделать.
В принципе кое, какие идеи у меня есть но сначала я бы хотел узнать про 2 способа с которыми во Flash я не очень то разбираюсь.

DisplacementMapFilter - теоретически если работать с BitMap, на сколько я понимаю можно добиться того, что для DisplacementMap все пиксели будут иметь смещение в 1 пиксель кроме пикселей крайнего рядя. Крайние будут иметь смещение в обратную сторону равное длине BitMap'a. А далее он будет применяться кадр за кадром. Возможно, ли это и если да то не мог ли бы показать пример в коде, так как я не уверен как это правильно сделать. :confused:

BitMap - вариант второй это работать напрямую с BitMap. Переставлять эти пиксели в ручную таким же образом, как и выше. :confused:

И так я бы хотел услышать мнения по этому поводу. Возможно ли это? Плюсы и минусы каждого метода?
У меня есть предположение что если превращать текст в BitMap будет теряться anti-analising, а это не очень, то, хорошо учитывая что текст может быть маленьким. :confused:

etc 31.08.2006 14:14

Цитата:

Сообщение от wonderwhy
Мне нужно сделать эффект бегущей строки как в новостях в низу экрана.

В низу чьего экрана?

И почему бы не юзать .hscroll обычного текстового поля вместо извращений?

__i 31.08.2006 14:25

а что просто _x++ уже не катит ?

wonderwhy 31.08.2006 17:04

Цитата:

Сообщение от __etc
В низу чьего экрана?

Это не важно. Просто эффект для текста где текст бежит с лева на право или наоборот.
Цитата:

Сообщение от __etc
И почему бы не юзать .hscroll обычного текстового поля вместо извращений?

Хмм некогда с ним не работал. Сеча попробовал. Не совсем подходит так как в исходном виде не позволяет тексу выйти за пределы поля полностью хотя если немного по извращаться то можно за счёт пробелов этого добиться.
[QUOTE__i]а что просто _x++ уже не катит ?[/quote]
Ну, прост это не удобный способ на самом то деле. Представать, что у меня ширена поля, где идёт прокрутка текста, скажем 300 пикселей в длину, а слово одно и занимает, скажем, 50. Тогда надо создать 5-6 текстовых полей, которые будут _x++ на EnterFrame и в случае, что полностью вышли из поля приносятся в право и опять всё с начала.

Я опробую все способы и выложу результаты и код здесь.

etc 31.08.2006 17:12

Зачем делать из мухи слона?
Двигать текст можно и под маской, дубовый способ.

wonderwhy 01.09.2006 01:42

Цитата:

Сообщение от __etc
Зачем делать из мухи слона?
Двигать текст можно и под маской, дубовый способ.

Ну, это тот способ, который мне пришел в голову в первую очередь, но он действительно дубовый :wacko: Сегодня опробовал вариант через BitmapData. Получилось неплохо, но сдвиг как минимум на 1 пиксель не меньше. Я думаю, сделаю три варианта.
Первый с маской простое _x++.
Второй через битмап и 3 через hscroll. К последним двум надо будет сделать небольшие примочки, что бы можно было сдвигать меньше чем на пиксель и для hscroll надо еще кое-что сделать. Подтестирую на скорость и вообще как выглядеть будет. А там посмотрим :victory:

lamazz 07.06.2007 13:03

Интересно чем тесты законцились =)

CrazyFlasher 07.06.2007 13:07

мда...зачем таким развратом заниматься?? можно просто менять положения по _x под маской и всё!

Aisaid 15.06.2007 20:05

когда-то я уже эту тему подымал - юзай поиск ;)

у меня получилось довольно неплохой скрол - с возможностью загрузки из внешнего файлика (*.txt) (метод маски), и естественно можно выбрать любой шрифт...

wvxvw 21.06.2007 18:30

Код:

var _txt:TextField = _root.createTextField("_txt", 0, 0, 0, 300, 20);
_txt.text = "It was many and many a year ago, in the castle by the sea. There lived a maiden that you may know by the name of Annabe Lea. ";

_root.onEnterFrame = function(){
        var _str = _txt.text;
        _str = _str.substr(1, _str.length)+_str.charAt(0);
        _txt.text = _str;
}
trace("Edgar 4ever!!! %)");



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

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