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

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

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

Регистрация: Jun 2006
Сообщений: 15
По умолчанию Как узнать ширину текста ДО добавления родительского елемента.

задача такая нарисовать цену с надстрочными копейками.
причем то на чем рисуем, еще не добавленно.

Код:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
	<mx:Script>
		<![CDATA[
			import mx.containers.Canvas;
			import mx.controls.Text;
		    
		    private var fontsize:Number=24;
		    private var fontcolor:Number=0xFF0000;
		    
			function drawIt(paper:String,coins:String){
					
					
					var _canvas:Canvas=new Canvas();
					
					var textChild:Text=new Text();
					textChild.text=paper;
				    textChild.setStyle("fontSize",fontsize);
        			textChild.setStyle("color",fontcolor);
        			
        			textChild.validateNow();
        			var paperTextWidth:Number=textChild.textWidth;
        			tracelog("After text create - paperTextWidth="+paperTextWidth);
        			
        			_canvas.addChild(textChild);
        			
        			textChild.validateNow();
        			paperTextWidth=textChild.textWidth;
        			tracelog("After text add - paperTextWidth="+paperTextWidth);
        			
        				
        			
        			
        			_canvas.validateNow();
        			paperTextWidth=textChild.textWidth;
        			tracelog("After validate canvas - paperTextWidth="+paperTextWidth);
        			
        			
        			var lm:TextLineMetrics=textChild.getLineMetrics(0);
        			
        			tracelog("After validate canvas - TextLineMetrics.width="+lm.width);
        			
                    // здесь нам бы уже надо знать paperTextWidth

        			if(""!=coins){
        				var coinsChild:Text=new Text();
        				
        				coinsChild.x=textChild.x+paperTextWidth;
        				
        				coinsChild.text=coins;
        				coinsChild.y=textChild.y +(textChild.height*0.4);
        				coinsChild.setStyle("fontFamily",textChild.getStyle("fontFamily"));
        				coinsChild.setStyle("color",textChild.getStyle("color"));
        				coinsChild.setStyle("fontSize",textChild.getStyle("fontSize")*0.6);
        				_canvas.addChild(coinsChild);
        			}
					
					_canvas.width=202;
					_canvas.height=323;
					_canvas.x=52;
					_canvas.y=74;
					addChild(_canvas);
					
					textChild.validateNow();
        			paperTextWidth=textChild.textWidth;
        			tracelog("After add canvas - paperTextWidth="+paperTextWidth);
					
					
			}
		private function tracelog(s:String){
		    log.text+="\n"+s;
		}	
			
			
		]]>
	</mx:Script>
	
	<mx:TextArea x="303" y="74" width="190" height="323" id="log"/>
	<mx:TextInput x="52" y="419" width="46" id="paper" text="737" />
	<mx:TextInput x="106" y="419" width="46" id="coins" text="99"/>
	<mx:Label x="97" y="418" text="." fontFamily="Arial" fontWeight="bold" fontSize="22"/>
	<mx:Button x="189" y="419" label="draw" click="drawIt(paper.text,coins.text)"/>
</mx:Application>
возможно так сделать нельзя.
тогда подскажите на какое событе повесить, чтоб рисовать После того как родитель текста добавоен в дисплей лист.

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

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

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


 


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


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