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

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

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

Регистрация: Mar 2009
Сообщений: 105
По умолчанию Устранение "эффекта дрожания" текстовых полей

Всем доброго дня!

Делаю что-то, похожее не телетекст следующим образом:

Код AS1/AS2:
var container:MovieClip = this.createEmptyMovieClip("text_mc", 1);
	var container2:MovieClip = container.createEmptyMovieClip("maska_mc", 2);
	container2.beginFill(0xFF0000);
	container2.moveTo(0,0);
	container2.lineTo(MoveWidht,0);
	container2.lineTo(MoveWidht,MoveHeight);
	container2.lineTo(0,MoveHeight);
	container2.lineTo(0,0);
	container2.endFill();
	text_mc.setMask(container2);
//container0 - мувик для текстовых полей
	container.createEmptyMovieClip("container0",0);
	container.container0._x = 0;
	container.container0._y = MoveHeight;
Потом в container.container0 помещаю нужное кол-во TextField (один ниже другого) и запускаю функцию go

Код AS1/AS2:
function go(container:MovieClip) {
	container.container0.dy = container.container0._y;
 
	container.onEnterFrame = function() {
 
		if (container.container0._y>-container.container0._height) {
			container.container0._y -= 1;
		} else {
			container.container0._y = container.container0.dy;
			go(container);
		}
	};
}
алгоритм работает хорошо. Но вот только, если раскрываю флеш на весь экран (а в проекте так и надо), то видно постоянное подергивание текста...

Что можете предложить?

Заранее спасибо!

Старый 27.05.2009, 12:20
джонатан вне форума Посмотреть профиль Отправить личное сообщение для джонатан Найти все сообщения от джонатан
  № 2  
Ответить с цитированием
джонатан
 
Аватар для джонатан

Регистрация: Jan 2007
Адрес: Минск
Сообщений: 781
Отправить сообщение для джонатан с помощью Skype™
Анти альясинг ставить нужно for animation для текстовых полей
__________________
Убейте меня!

Старый 27.05.2009, 12:27
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 3  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
извините, а где это ставиться?

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот кусок из хелпа, если вы создаете TextField программно:
Код AS1/AS2:
var my_text1:TextField = this.createTextField("my_text1", this.getNextHighestDepth(), 10, 10, 300, 30);
my_text1.text = "This text uses advanced anti-aliasing.";
my_text1.antiAliasType = "advanced";
 
var my_text2:TextField = this.createTextField("my_text2", this.getNextHighestDepth(), 10, 50, 300, 30);
my_text2.text = "This text uses normal anti-aliasing."
my_text2.antiAliasType = "normal";
Только использование этого свойства может не помочь, мне кажется, здесь корни глубже.

Старый 27.05.2009, 12:33
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 5  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
так пробовал, все равно есть дрожание...

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Тут дело не в альасинге, а в том, что плеер не упевает отрисовывать шрифтом текст.
По опыту знаю, если текст использовать шрифтовой, так и будет. Если же превратить его в Shape, то все нормально, чистенько, без дрожаний.
Но это для статического поля и для авторской среды. А вот как быть для прграммируемого поля, не знаю.


Последний раз редактировалось mooncar; 27.05.2009 в 12:43.
Старый 27.05.2009, 12:49
PeSH вне форума Посмотреть профиль Отправить личное сообщение для PeSH Найти все сообщения от PeSH
  № 7  
Ответить с цитированием
PeSH

Регистрация: Apr 2009
Сообщений: 20
Я бы вам посоветовал делать из текста битмап. То есть прорисовывать клип с текстом в битмап, а само текстовое поле прятать или убивать. Таким образом у вас будет не текстовое поле, а битмап картинка, а у нее такого эффекта не наблюдается.
Для прорисовки используйте объект класса BitmapData и его метод draw. Почитайте справку, если еще не пользовались, там все понятно расписано.

Добавлено через 46 секунд
А для атача в клип метод attachBitmap класса MovieClip

Старый 27.05.2009, 15:35
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 8  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
PeSH, спасибо, сейчас буду разбираться

Добавлено через 54 минуты
И все таки не понимаю, запутался...
У меня есть динамическое кол-во текстовых полей. Мне нужно каждое из них помещать в свой битмат, а потом все битмапы в клип, который двигаю?
А вообще можно аттачить к клипу динамическое кол-во битмапов? Или для каждого битмапа создавать промежуточный клип?

Старый 27.05.2009, 16:59
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Двигайте текстовое поле по целым пикселям
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 27.05.2009, 17:02
zelik вне форума Посмотреть профиль Отправить личное сообщение для zelik Найти все сообщения от zelik
  № 10  
Ответить с цитированием
zelik

Регистрация: Mar 2009
Сообщений: 105
Да я вроде бы так и делаю

Код AS1/AS2:
function go(container:MovieClip) {
	container.container0.dy = container.container0._y;
 
	container.onEnterFrame = function() {
 
		if (container.container0._y>-container.container0._height) {
			container.container0._y -= 1;
		} else {
			container.container0._y = container.container0.dy;
			go(container);
		}
	};
}
Добавлено через 2 часа 49 минут
поместил все TextField в BitmapData и вре равно есть дрожение.

Кто-нибудь может еще что-то посоветовать?

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

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

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


 


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


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