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

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

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

Регистрация: Jul 2011
Сообщений: 13
По умолчанию Вытягивание текста в ОДНУ строчку.

Есть мувиклип, в нем текстовое динамическое поле myTxt.

Подгружаемый текст при помощи XML очень длинный. При задании поведения однострочного текста, не получаю желаемого результата. Программно после добавление к текстовому полю myTxt.autoSuze = true; так же не получаю нужного результата. получается что текст переходит на следующую строчку.
В мувиклипе он вытянут на сколько позволил вытянуть вправо мой монитор. (т.е его ширина 800-1000 px)

Вот скрин его поведения: просмотр 15dcdb4de.bmp

Кто сталкивался? Как решить?

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

Регистрация: Aug 2010
Сообщений: 282
Как вариант:
Присваиваешь своему текстовому полю Имя экземпляра (Linkage) например my_long_text.
далее тупо растягиваешь его хоть на 10000 пикселей )))

Код AS1/AS2:
my_long_text._width=10000;
Наверное так делать нельзя, но оно работает )))

Старый 24.07.2011, 09:40
zabmix вне форума Посмотреть профиль Отправить личное сообщение для zabmix Найти все сообщения от zabmix
  № 3  
Ответить с цитированием
zabmix

Регистрация: Jul 2011
Сообщений: 13
В моем случае нельзя, т.к этот текст анимируется (из А в пункт Б), дойдя определенной точки вычитанной путем его длинны, возвращается на позицию А.
Как бегущая строка в телевизоре.
Длинный текст не вмещается в ширину..( Если бы можно было высчитать сколько займет текст в ширину и присвоить текстовому полю - то с удовольствием.

Добавлено через 22 часа 8 минут
вопрос актуален.

Старый 25.07.2011, 11:12
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Свойства текстового блока - Single Line ?
Или Multi Line?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 25.07.2011, 12:09
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 5  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Зачем вы это делаете? Логика подказывает, что текстовое поле размера большего, чем монитор, в монитор не влезет, так что не побоюсь показаться назойливым, и повторю вопрос - зачем?
__________________
Hell is the possibility of sanity

Старый 25.07.2011, 12:40
zabmix вне форума Посмотреть профиль Отправить личное сообщение для zabmix Найти все сообщения от zabmix
  № 6  
Ответить с цитированием
zabmix

Регистрация: Jul 2011
Сообщений: 13
затем что получаемый текст из XML бывает разный.
Один пару слов, другой 50.
Вы смотрели когда-нибудь телевизор, видели там "бегущую строку"?
Я хочу сделать эту строку тем же принципом.

Вот небольшой код, думаю даст свет в глаза что именно мне нужно.
Код AS1/AS2:
 
// myTXT - текстовое поле
 
myTXT.autoSize = true;
var W:Number = myTXT._width;
 
myTXT._x = 180;
 
this.onEnterFrame = function() {
	if(myTXT._x + W < 0) {
		myTXT._x = 180;
	}
	myTXT._x -= 2;
	updateAfterEvent();
};

Старый 25.07.2011, 12:51
vivado вне форума Посмотреть профиль Отправить личное сообщение для vivado Найти все сообщения от vivado
  № 7  
Ответить с цитированием
vivado

Регистрация: Aug 2010
Сообщений: 282
Цитата:
Сообщение от zabmix Посмотреть сообщение
В моем случае нельзя, т.к этот текст анимируется (из А в пункт Б), дойдя определенной точки вычитанной путем его длинны, возвращается на позицию А.
Как бегущая строка в телевизоре.
Длинный текст не вмещается в ширину..( Если бы можно было высчитать сколько займет текст в ширину и присвоить текстовому полю - то с удовольствием.

Добавлено через 22 часа 8 минут
вопрос актуален.
Ну можно зная длину строки (вернее кол-во символов в ней) ухитрится подобрать ширину )))
Ну например один символ 12pt занимает примерно 12px ширины, ну и дальше через legnth узнаешь кол-во символов в строке и делаешь ширину мувика )))
Это конечно "грабли", но в принципе как вариант )))))))))))))))))

Старый 25.07.2011, 13:48
zabmix вне форума Посмотреть профиль Отправить личное сообщение для zabmix Найти все сообщения от zabmix
  № 8  
Ответить с цитированием
zabmix

Регистрация: Jul 2011
Сообщений: 13
не всегда так, некоторые шрифты "хитрые" один символ шире другой короче.

В принципе тот вариант что я предложил, пожалуй самый лучший что можно было бы придумать, но строка почему то переходит на вторую строчку, хотя в свойствах строго сказано: "Однострочный".

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

Регистрация: Aug 2010
Сообщений: 282
Может у тебя текст как html выводится? Попробуй прописать
Код AS1/AS2:
my_txt.html = false;

Старый 25.07.2011, 20:06
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Нет, вы не поняли вопрос. Вам одновременно не нужно показывать больше символов, чем может уместится на экране - соотвественно, вам и текстовое поле большего размера не нужно - вы его показать все равно не сможете - т.как негде. Более того, скорее всего ваша флешка выполняется в браузере, и у нее есть фиксированый размер, или размер можно так или иначе предположить изначально. Чтобы сделать бегущую строку не нужно весь текст сразу в нее запихать. Это мало того, что накладно (гораздо проще отрисовать несколько глифов одовременно, чем просчитать миллион и отрисовать десять).
Типичное в таких случаях решение - храните вашу строку в переменной, когда нужно сместить на один символ - этот символ отнимаете от нужного конца, и к противоположному концу добавляете. После чего берете первые Х символов, чтобы заполнить пространство отведенное под отображение строки. Если нужна плавная анимация, можно делать вышеприведенную операцию раз в Y тактов, а оствашиеся Y - 1 тактов сдвигать текстовое поле на К / Y где K - какая-то постоянная величина примерно равная одному символу (em / круглая шпация - например). Ну и в последний Y такт возвращать в исходное положение. Если выставить выравнивание шрифту на уровень "к пикселям", то можно, думаю, добиться эффекта, когда движение будет очень даже плавным.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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