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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.09.2007, 14:18
ShockWave1024 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave1024 Найти все сообщения от ShockWave1024
  № 1  
Ответить с цитированием
ShockWave1024
[+1.10 22.01.07]

Регистрация: May 2006
Сообщений: 59
Thumbs down Рендеринг вложенных шрифтов.

В разных компонентах - по разному.
вот код
Код:
public static function drawText(oParent:UIComponent,
      nX:Number = 0,
      nY:Number = 0,
      nWidth:Number = 30,
      nHeight:Number = 30, 
      sText:String = "DD",
      uColor:uint = 0x000000,
      // center, left, right
      sHAlign:String = "center",
      // middle, top, bottom
      sVAlign:String = "middle",
      sFont:String = "helvnewblackcond"):void {
        
        // Test label, for metrics measure
        var oLabel:Label = new Label();
				oLabel.text = sText;
				oLabel.setStyle("fontFamily", sFont);
				oLabel.setStyle("fontSize", 100);
        
				oParent.addChild(oLabel);
				
				oLabel.validateNow();
				
				var oTlm:TextLineMetrics = oLabel.measureText(sText);

				// Get metrics without top and bottom font margin
        var nMult:Number = Math.min( nWidth / oTlm.width, 
				  nHeight / oTlm.height );
				  
			  var oLabel2:Label = new Label();
	  
			  oLabel2.truncateToFit = false;
				oLabel2.text = sText;
				oLabel2.setStyle("color", uColor );
				oLabel2.setStyle("fontFamily",sFont);
				oLabel2.setStyle("fontSize", 100);
			  
			  oParent.addChild( oLabel2 );
			  
			  oLabel2.scaleX = nMult;
			  oLabel2.scaleY = nMult;
				
				switch ( sHAlign ) {
          case "center":
            oLabel2.x = nX + (  nWidth / 2 ) - 
              ( ( ( oTlm.width )* nMult ) / 2 ) - ( oTlm.x * nMult );
          break;
          case "left":
            oLabel2.x = nX;
          break;
          case "right":
            oLabel2.x = nX + nWidth - ( oTlm.width * nMult );
          break;
          default:
          break;
        }; 
        
        switch ( sVAlign ) {
          case "middle":
            oLabel2.y = nY + ( nHeight / 2 ) - 
              ( ( ( oTlm.height ) * nMult) / 2 );
          break;
          case "top":
            oLabel2.y = nY;
          break;
          case "bottom":
            oLabel2.y = nY + nHeight - ( ( oTlm.height ) * nMult);
          break;
          default:
          break;
        }; 
             
				// Remove source label
				oParent.removeChild( oLabel );
				oLabel = null;
      }
во вложении пример вживую
слева в mx:List шрифты почему то отрисовываются по умолчанию
справа на Canvas все прорисовывается как надо
что бы это могло быть и как лечится ???
Изображения
 

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

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

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


 


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


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