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

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

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

Регистрация: Nov 2005
Сообщений: 148
По умолчанию Написать текст на Bitmap-е встроеным шрифтом

Не могу сделать надпись на Bitmap-е. Поправьте, пожалуйста.
Код AS3:
...
public class Pan extends MovieClip {
...
 fmt=new TextFormat("Segoe WP", 20, 0xFFFFFF);//Загружен в библиотеку
...
 var txt:TLFTextField=new TLFTextField();
 txt.width=100;
 txt.embedFonts=true;				
 txt.autoSize=TextFieldAutoSize.LEFT;
 txt.wordWrap=true;
 txt.multiline=true;
 txt.defaultTextFormat=fmt;
 txt.text="STRING STRING STRING";
 
 var someTexture = new BitmapData(350, 110, false, 0x06319b);
 someTexture.draw(txt);
 var bitmapImg:Bitmap = new Bitmap(someTexture,"auto",true);
 addChild(bitmapImg);
...
Получается только залитый синим цветом прямоугольник без текста.
В общем-то, и не встроенным шрифтом ничего не пишется (


Последний раз редактировалось zerAlex2; 20.08.2012 в 12:46.
Старый 20.08.2012, 13:28
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Попробуйте заменить TLFTextField на TextField
У меня с простым текстфилдом работает

Старый 20.08.2012, 14:52
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 3  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Поменял - синий квадрат (

Старый 20.08.2012, 15:07
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Значит проблема со встроенным шрифтом. Потому что у меня этот же код без встраивания шрифта работает

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы проверяли, есть ли текст в текстфилде, прежде чем искать ошибки в битмапдате?
__________________
Reality.getBounds(this);

Старый 20.08.2012, 15:29
zerAlex2 вне форума Посмотреть профиль Отправить личное сообщение для zerAlex2 Найти все сообщения от zerAlex2
  № 6  
Ответить с цитированием
zerAlex2

Регистрация: Nov 2005
Сообщений: 148
Так я ж том же. Если б не этот долбаный шрифт, всё было бы проще...
Хотя, у меня даже со шрифтом по умолчанию ничего не вышло. Вынес всё в функцию, для удобства чтения.

Код AS3:
 
private function makeBitmapDataTexture(str:String)
{
 //fmt=new TextFormat("Segoe WP", 20, 0xFFFFFF);			
 var txt:TextField=new TextField();
 txt.width=100;
 txt.embedFonts=true;				
 txt.selectable=false;
 txt.autoSize=TextFieldAutoSize.LEFT;
 txt.wordWrap=true;
 txt.multiline=true;
 //txt.defaultTextFormat=fmt;
 txt.text=str;
 
 var someTexture = new BitmapData(350, 110, false, 0x06319b);
 someTexture.draw(spr);
 var bitmapImg:Bitmap = new Bitmap(someTexture,"auto",true);
 
 var BD:BitmapData=new BitmapData(350, 100);
 BD.draw(bitmapImg);
 return BD;
}
 
var bitMapTexture:BitmapData=makeBitmapDataTexture("STRING STRING STRING");
 
var bm:Bitmap = new Bitmap(bitMapTexture,"auto",true);//Для проверки
viewport.addChild(bm);//Для проверки
Последние 2 строки только для проверки, мне на выходе нужна BitmapData для материала Plane.
Дык, текст-то я присваиваю, как ему не быть?


Последний раз редактировалось zerAlex2; 20.08.2012 в 15:40.
Старый 20.08.2012, 16:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Дык, текст-то я присваиваю, как ему не быть?
Ну элементарно, если внедренный шрифт "не подхватился")))) Выведите текстфилд в отображение, есть там текст или нет? Потому что никаких проблем с отрисовкой в битмапдату быть не должно. Нет там никаких хитростей "специально для текста".
__________________
Reality.getBounds(this);

Старый 20.08.2012, 16:25
incvizitor вне форума Посмотреть профиль Отправить личное сообщение для incvizitor Найти все сообщения от incvizitor
  № 8  
Ответить с цитированием
incvizitor
 
Аватар для incvizitor

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Для начала попробуйте добавить текстфилд на сцену. И посмотрите будет в нём текст или нет.
__________________
ranga

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

Регистрация: Nov 2005
Сообщений: 148
Попробую...

Нет, ничего не видно. Но разве txt.text=str; не должно присваивать текст?


Последний раз редактировалось zerAlex2; 20.08.2012 в 16:43.
Старый 20.08.2012, 16:51
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы можете хоть всю "Войну и мир" надиктовать, но если в типографии нет шрифта..
__________________
Reality.getBounds(this);

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

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

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


 


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


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