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

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

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

Регистрация: Jun 2007
Сообщений: 17
По умолчанию Непонятный баг getTextExtent

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

Скопировал пример getTextExtent из хелпа один в один та же ерунда.

Код:
function newTextLayer() {
	mcTools.createTextField("mcNewLayer"+LayerCount, LayerCount, 100, 100, 200, 100);
	
	trace ("img " +_level0.img_mc) //возвращает ссылку на mc
	mcTools["mcNewLayer"+LayerCount].type = "dynamic";
	mcTools["mcNewLayer"+LayerCount].text = NewLayerText;
	txtInput.text = mcTools["mcNewLayer"+LayerCount].text;
	var textStr:String = mcTools["mcNewLayer"+LayerCount].text;
		
	
	mcTools["mcNewLayer"+LayerCount].onSetFocus = function() {
					
					var my_str:String = "Small string";
					// Create a TextFormat object,
					// and apply its properties.
					var my_fmt:TextFormat = new TextFormat();
					with (my_fmt) {
						font = "Arial";
						bold = true;
					}
					
					// Obtain metrics information for the text string
					// with the specified formatting.
					var metrics:Object = my_fmt.getTextExtent(my_str);
					
					// Create a text field just large enough to display the text.
					this.createTextField("my_txt", this.getNextHighestDepth(), 100, 100, metrics.textFieldWidth, 
					metrics.textFieldHeight);
					my_txt.border = true;
					my_txt.wordWrap = true;
					// Assign the same text string and TextFormat object to the my_txt object.
					my_txt.text = my_str;
					my_txt.setTextFormat(my_fmt);

                 trace ("img " +_level0.img_mc) //возвращает undefined
		
		
	};
}

что делать? кто с таким сталкивался?

Старый 16.07.2007, 16:14
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Вероятно, проблема в указанной глубине при создания текстового поля.

Старый 16.07.2007, 16:53
tracert вне форума Посмотреть профиль Отправить личное сообщение для tracert Найти все сообщения от tracert
  № 3  
Ответить с цитированием
tracert

Регистрация: Jun 2007
Сообщений: 17
Код:
var img_mc:MovieClip = _root.createEmptyMovieClip("img_mc", _root.getNextHighestDepth());  // depth 1048576
а у текста глубина 0, 1, 2 и т.д.

Старый 16.07.2007, 17:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Если в проекте используются компоненты, то для работы надо использовать DepthManager вместо getNextHighestDepth().

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

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

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


 


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


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