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

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

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

Регистрация: Jul 2009
Сообщений: 39
По умолчанию Embed Fonts пара вопросов

Возикла пара проблем при работе с текстом в TextField, внедрил все нужные мне сиволы и шрифты в нужный мне TextField, но при программном изменении текста на экране ничего не показывается. Каким образом можно это излечить.

И еще один вопрос, если много динамических текстовых полей и в каждый из них встроен один и тот же шрифт, то как это отразится на размере, не будет ли флеш для каждого поля хранить один и тот же шрифт много раз в ресурсах.

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
в классе использующем текстовое поле
Код AS3:
ваш_филд.embedFonts = true;
и будет работать

embed все равно будет только один раз, т.е. похожие символы embed'ид только один раз

Старый 03.09.2009, 20:02
MaxFX вне форума Посмотреть профиль Отправить личное сообщение для MaxFX Найти все сообщения от MaxFX
  № 3  
Ответить с цитированием
MaxFX

Регистрация: Jul 2009
Сообщений: 39
Цитата:
Сообщение от СлаваRa Посмотреть сообщение
в классе использующем текстовое поле
Код AS3:
ваш_филд.embedFonts = true;
и будет работать

embed все равно будет только один раз, т.е. похожие символы embed'ид только один раз
Сделал так же, но текст все равно не отрисовывается

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
скинь класс сюда

Старый 03.09.2009, 21:23
MaxFX вне форума Посмотреть профиль Отправить личное сообщение для MaxFX Найти все сообщения от MaxFX
  № 5  
Ответить с цитированием
MaxFX

Регистрация: Jul 2009
Сообщений: 39
Класс такой

Код AS3:
package GUI
{
	import flash.display.*;
	import flash.text.*;
 
	public class SoundButton extends SimpleButton
	{
		public function SoundButton ()
		{			
			((upState as DisplayObjectContainer).getChildAt(3) as TextField).embedFonts = true;
			((downState as DisplayObjectContainer).getChildAt(3) as TextField).embedFonts = true;
			((overState as DisplayObjectContainer).getChildAt(3) as TextField).embedFonts = true;
		}
	}
}
В коде я делаю так:

Код AS3:
...
btnSound.addEventListener(MouseEvent.MOUSE_DOWN, btnSound_MouseDown);
...
 
private function btnSound_MouseDown(e: Event): void {
	SoundEnable = !SoundEnable;
 
	var txt: String = null;
 
	if (SoundEnable) {
		txt = "ВКЛ. ЗВУК";				
	} else {
		txt = "ВЫКЛ. ЗВУК";
	}
 
	((btnSound.upState as DisplayObjectContainer).getChildAt(3) as TextField).text = txt;
	((btnSound.downState as DisplayObjectContainer).getChildAt(3) as TextField).text = txt;
	((btnSound.overState as DisplayObjectContainer).getChildAt(3) as TextField).text = txt;
}
Шрифт внедрил непосредственно при редактировании TextField'а в самом fla (непрограммный способ)

Старый 03.09.2009, 21:43
Felicast вне форума Посмотреть профиль Отправить личное сообщение для Felicast Найти все сообщения от Felicast
  № 6  
Ответить с цитированием
Felicast
 
Аватар для Felicast

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
во-первых: а если не использовать внедрение шрифта, у вас тоже текст не отображается?
во-вторых:
Цитата:
((btnSound.upState as DisplayObjectContainer).getChildAt(3) as TextField).text = txt;
это просто охренеть как нехорошо.
в-третьих: я все-таки рекомендую вам прислушаться, к тому что я писал в вашей предыдущей теме и отказаться от SimpleButton и использовать Sprite.
__________________
я могу стать всем, если только захочу

Старый 03.09.2009, 22:29
СлаваRa вне форума Посмотреть профиль Отправить личное сообщение для СлаваRa Найти все сообщения от СлаваRa
  № 7  
Ответить с цитированием
СлаваRa
 
Аватар для СлаваRa

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
примите пост выше и у меня есть вопрос(вопросы) почему нельзя сделать свою кнопку?, и точно ли у вас embed шрифта в верхнем регистре?

ради интереса, попробуйте создайте, клип sButton(называйте как хотите), в ней сделайте кнопку с текстовым полем, embed шрифта для поля, в классе кнопки по мимо обработчиков событий нажатия и наведения, сделайте embedFonts, для поля(определите через getChildByName), равным true, и посмотрите что будет


Последний раз редактировалось СлаваRa; 03.09.2009 в 22:34.
Старый 03.09.2009, 22:37
MaxFX вне форума Посмотреть профиль Отправить личное сообщение для MaxFX Найти все сообщения от MaxFX
  № 8  
Ответить с цитированием
MaxFX

Регистрация: Jul 2009
Сообщений: 39
Цитата:
Сообщение от Felicast Посмотреть сообщение
во-первых: а если не использовать внедрение шрифта, у вас тоже текст не отображается?
во-вторых:

это просто охренеть как нехорошо.
в-третьих: я все-таки рекомендую вам прислушаться, к тому что я писал в вашей предыдущей теме и отказаться от SimpleButton и использовать Sprite.
Я уже понял что это изврат, просто кнопка только одна во всем приложении у которой контент меняется.

Старый 03.09.2009, 22:54
Dmitry Bogdanov вне форума Посмотреть профиль Отправить личное сообщение для Dmitry Bogdanov Найти все сообщения от Dmitry Bogdanov
  № 9  
Ответить с цитированием
Dmitry Bogdanov

Регистрация: Sep 2009
Сообщений: 1
Попробуйте после каждого изменения содержимого текстового поля
делать СетТекстФормат.

TextFieldN1.SetTextFormat(самTextFormat);

Или я ерунду говорю ?

Старый 03.09.2009, 23:44
MaxFX вне форума Посмотреть профиль Отправить личное сообщение для MaxFX Найти все сообщения от MaxFX
  № 10  
Ответить с цитированием
MaxFX

Регистрация: Jul 2009
Сообщений: 39
Переписал класс кнопки

Код AS3:
package GUI
{
	import flash.display.*;
	import flash.text.*;
	import flash.errors.*;
	import flash.events.*;
 
	public class ButtonSound extends MovieClip
	{
		public function get Text(): String
		{
			return txtText.text;
		}
 
		public function set Text(val: String)
		{
			txtText.text = val;			
		}
 
		public function ButtonSound()
		{
			stop();
			this.buttonMode = true;
			this.mouseChildren = false;
			txtText.embedFonts = true;
			InitializeGUIListeners();
		}
 
		private function InitializeGUIListeners()
		{
			addEventListener(MouseEvent.MOUSE_DOWN, OnMouseDown);
			addEventListener(MouseEvent.MOUSE_OUT, OnMouseOut);
			addEventListener(MouseEvent.MOUSE_OVER, OnMouseOver);
		}
 
		private function OnMouseDown(e: Event)
		{
			gotoAndStop(3);
		}
 
		private function OnMouseOut(e: Event)
		{
			gotoAndStop(1);
		}
 
		private function OnMouseOver(e: Event)
		{
			gotoAndStop(2);
		}
	}
}
Заэмадил весь шрифт со всеми символами, но все равно пустое место после нажатия кнопки. И как я понял к txtText надо обратиться в каждом фрейме чтобы заменить текст при всех состояниях кнопки. Можно конечно все одним фреймом сделать, только не в моем случае, так как в кнопке еще достаточно сложная анимация задника.

Добавлено через 2 часа 21 минуту
Неужели нет нормально способа изменять текст в случае встроенных шрифтов?

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

Теги
embed fonts , textfield , ресурсы

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

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


 


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


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